@charset "utf-8";
/* CSS Document */


/* banners_list
   ================================================================== */
.banners_list{
	margin: 0 auto;
}

.banners_list > li{
	margin: 4vw 0 0;
    line-height: 0;
}

.banners_list li span,
.banners_list li a{
	display: block;
    line-height: 0;
}

.banners_list li a img{
    width: 100%;
}


/* under_title_section
   ================================================================== */
.under_title_section{
	margin: 0 0 0;
}

.under_title_section .title{
    font-size: 7vw;
    width: 100%;
    height: 16vw;
    color: #fff;
    font-weight: 200;
    background: linear-gradient(25deg,#0A274E 0%,#3892BA 50%,#3892BA 100%);
	display: flex;
	justify-content: center;
	align-items: center;
}

/* pankz */
.pankz{
    margin: 3vw auto 0;
    padding: 0;
    font-size: 0;
}

.pankz > li{
    margin: 0 8vw 2vw 0;
    display: inline-block;
    vertical-align: top;
    position: relative;
}

.pankz > li:last-child{
    margin-right: 0;
}

.pankz > li::before{
    content: "";
    background-image: url("../images/common/pankz_arrow.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 1.5vw;
    height: 5vw;
    position: absolute;
    top: 0;
    left: calc(100% + 3vw);
}

.pankz > li:last-child::before{
    display: none;
}

.pankz > li > span,
.pankz > li a{
    font-size: 3.5vw;
    line-height: 150%;
    font-weight: 500;
    color: #777;
    display: block;
}

.pankz > li a{
    color: #ccc;
}


/* movie_kv
   ================================================================== */
.movie_kv{
	margin: 0 0 0;
    height: 95vh;
    box-sizing: border-box;
	position: relative;
    overflow: hidden;
}

.movie_kv.index_kv{
    padding-bottom: 15vw;
}

.movie_kv:before{
	content: "";
	background: rgba(0,0,0,.27);
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
    z-index: 1;
}

.movie_kv.index_kv:before{
	background: rgba(0,6,56,.3);
}

@media screen and (max-width : 499px){
    
    .movie_kv .inner{
        padding: 0;
    }
    
}

.movie_kv .inner{
	position: relative;
    z-index: 2;
    height: 100%;
    box-sizing: border-box;
	display: flex;
    justify-content: center;
    align-items: center;
}

.movie_kv video{
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 120%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

.movie_kv *{
    color: #fff;
}

.movie_kv .inbox{
    padding: 0 0 0;
    text-align: center;
}

.movie_kv .page_title{
    margin: 0 auto 5vw;
}

.movie_kv .page_title span{
    padding: 2vw 15vw;
    font-size: 4.5vw;
    min-width: 60vw;
    font-weight: 500;
    letter-spacing: 0.1em;
    box-sizing: border-box;
    display: inline-block;
    background: linear-gradient( 125deg,rgba(45,137,196,.7) 0%,rgba(45,137,196,.7) 30%,rgba(23,69,98,.7) 60%,rgba(23,69,98,.7) 100%);
    clip-path: polygon(7% 0, 100% 0%, 93% 100%, 0% 100%);
}

.movie_kv .catch{
    font-size: 6.3vw;
    font-weight: 400;
    letter-spacing: 0.1em;
    text-shadow: 0 3px 6px rgba(0,0,0,.62);
}

.movie_kv.index_kv .catch{
    font-size: 9.5vw;
}

.movie_kv .inbox p{
    margin: 5vw 0 0;
    font-size: 5.3vw;
    line-height: 150%;
    letter-spacing: 0.08em;
    font-weight: 200;
    text-shadow: 0 3px 6px rgba(0,0,0,.62);
}

.movie_kv .eng{
    font-size: 3.2vw;
    font-weight: 700;
    letter-spacing: 0.3em;
    font-family: "Zen Kaku Gothic Antique";
    position: absolute;
    left: 6vw;
    bottom: 6vw;
}


/* index_partners
   ================================================================== */
.index_partners{
	margin: 0 0 0;
    padding: 1vw 0 15vw;
	position: relative;
}

.index_partners:before{
	content: "";
	background-image: url("../images/index/webp/wave_white.webp");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100% 100%;
	width: 100%;
	height: 15vw;
	position: absolute;
	bottom: calc(100% - 1px);
	left: 0;
    z-index: 5;
}

.index_partners .title{
	margin: 8vw auto 0;
    width: 35vw;
    line-height: 0;
}

.index_partners .title img{
	width: 100%;
}

.index_partners .partner_name{
	margin: 3vw auto 8vw;
    font-size: 6vw;
    line-height: 120%;
    letter-spacing: 0.28em;
    font-weight: 200;
    text-align: center;
}

.index_partners .partner_name .siz_s{
    font-size: 4.6vw;
    letter-spacing: 0.06em;
    font-weight: 200;
    display: inline-block;
}


/* partners_projects
   ================================================================== */
.partners_projects{
	margin: 0 0 0;
    padding: 8vw 0 8vw;
	position: relative;
    background: #F8F8F8;
}

.partners_projects .title{
	margin: 0 auto;
    width: 58vw;
    line-height: 0;
}

.partners_projects .title img{
	width: 100%;
}

.partners_projects .partner_name{
	margin: 3vw auto 8vw;
    font-size: 6vw;
    line-height: 120%;
    letter-spacing: 0.28em;
    font-weight: 200;
    text-align: center;
}

.partners_projects .banners_list img{
	box-shadow: 0 3px 6px rgba(0,0,0,.16);
}

.partners_projects .note{
	margin: 5vw 0 0;
    font-size: 3.4vw;
}


/* solution
   ================================================================== */
.solution{
	margin: 0 0 0;
	position: relative;
    background: #F5F8FC;
}

.solution:after{
	content: "";
	background-image: url("../images/index/solution_bg.svg");
	background-repeat: no-repeat;
	background-position: right bottom;
	background-size: 100%;
	width: 220vw;
	height: 100%;
	position: absolute;
	bottom: 6vw;
	right: 0;
    opacity: .13;
}

.solution .left{
    padding: 8vw 0;
}

.solution .site_logo{
    margin: 0 auto;
    width: 30vw;
    line-height: 0;
}

.solution .right{
    padding: 12vw 0 20vw;
    position: relative;
}

.solution .right:before{
	content: "";
	background: #286183;
	width: 200vw;
	height: 100%;
	position: absolute;
	top: 0;
	left: -50vw;
}

.solution .right > *{
    position: relative;
    z-index: 1;
}

.solution .title{
    margin: 0 -3vw;
    line-height: 0;
}

.solution .title img{
    width: 100%;
}

.solution .list{
    margin: 12vw 0 0;
}

.solution .list > li + li{
    margin: 12vw 0 0;
}

.solution .list .photo{
    margin: 0 0 0;
}

.solution .list .photo img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 330 / 172;
}

.solution .list .text_box{
    margin: 6vw 0 0;
}

.solution .list .ttl > span{
    display: block;
}

.solution .list .ttl .number{
    width: 15vw;
    line-height: 0;
}

.solution .list .ttl .number img{
    width: 100%;
}

.solution .list .ttl .txt{
    margin: 3vw 0 0;
    font-size: 5vw;
    font-weight: 700;
    line-height: 150%;
    font-family: "Zen Kaku Gothic Antique";
    color: #fff;
}

.solution .list .text{
    margin: 3vw 0 0;
    font-weight: 700;
    line-height: 200%;
    letter-spacing: 0.05em;
    font-family: "Zen Kaku Gothic Antique";
    color: #fff;
}


/* eng_title
   ================================================================== */
.eng_title.center{
	text-align: center;
}

.eng_title > span{
	display: block;
    line-height: 150%;
}

.eng_title .siz_32{
    font-size: 7vw;
    font-weight: 700;
	font-family: "Zen Kaku Gothic Antique";
}

.eng_title .siz_34{
    font-size: 8vw;
    font-weight: 700;
	font-family: "Zen Kaku Gothic Antique";
}

.eng_title .siz_14{
    font-size: 3.2vw;
    font-weight: 400;
}


/* debris
   ================================================================== */
.debris{
	margin: 0 0 0;
	padding: 10vw 0;
}

.debris.bg_gray{
	background: #F8F8F8;
}

.debris .title_jpn{
    margin: 3vw 0 0;
    font-size: 5.5vw;
    font-family: "Zen Kaku Gothic Antique";
}

.debris .title_jpn .siz_s{
    font-size: 4vw;
    font-family: inherit;
}

.debris .text_box{
    margin: 5vw 0 0;
}

.debris .text_box .ttl{
    line-height: 0;
}

.debris .text_box .ttl img{
    width: 100%;
}

.debris .text_box .photo{
    margin: 5vw 0 0;
}

.debris .text_box .text{
    margin: 4vw 0 0;
}

.debris .text_box .source{
    margin: 4vw 0 0;
    font-size: 3vw;
}


/* approach_band
   ================================================================== */
.approach_band{
	margin: 0 0 0;
    background: linear-gradient(125deg,#FAFAFA 0%,#F2F2F2 50%, #DDF0FF 100%);
}

.approach_band .photo{
    margin: 0;
}

.approach_band .text_box{
    padding: 5vw 6vw;
    
}

.approach_band .title_jpn{
    margin: 3vw 0 0;
    font-size: 5.7vw;
    font-family: "Zen Kaku Gothic Antique";
}


/* approach_section
   ================================================================== */
.approach_section{
	margin: 0 0 0;
	padding: 10vw 0;
    background: linear-gradient(135deg,#FAFAFA 0%,#FDFDFD 50%, #fff 100%);
}

.approach_section .approach_kv{
	margin: 0 0 0;
}

.approach_section .approach_kv .title{
	margin: 0 auto;
    width: 78vw;
    line-height: 0;
    position: relative;
    z-index: 1;
}

.approach_section .approach_kv .photo{
	margin: -6vw auto 0;
}

.approach_section .approach_kv .text{
	margin: 6vw 0 0;
    font-size: 4.5vw;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-align: center;
}

.approach_section .arrow{
	margin: 8vw auto;
    width: 20vw;
    line-height: 0;
}

.approach_section .approach_box{
	margin: 8vw -3vw 0 -6vw;
    padding: 6vw 5vw 4vw 8vw;
    background: linear-gradient(125deg,rgba(250,250,250,.52) 0%,rgba(221,240,250,.52) 40%,rgba(242,242,242,.52) 70%,rgba(250,250,250,.52) 100%);
    border-radius: 0 34px 27px 0;
}

.approach_section .approach_box .number > span{
    padding: 0 3vw 0 0;
	font-size: 8vw;
    display: inline-block;
    position: relative;
    font-family: "Zen Kaku Gothic Antique";
    font-weight: 700;
    letter-spacing: -0.001em;
}

.approach_section .approach_box .number > span:before{
	content: "";
    margin: auto;
	background: #222;
	width: 6vw;
	height: 1px;
	position: absolute;
	top: 55%;
	left: 100%;
}

.approach_section .approach_box .ttl{
    margin: 3vw 0 0;
	font-size: 6.5vw;
}

.approach_section .approach_box .text{
    margin: 3vw 0 0;
	font-size: 4.2vw;
}

.approach_section .approach_box .text .pueple{
    margin-right: 2vw;
    width: 3vw;
    display: inline-block;
    vertical-align: top;
}

.approach_section .approach_box .photo{
    margin: 5vw -2vw 0;
}


/* circulation
   ================================================================== */
.circulation{
	margin: 0 0 0;
	padding: 5vw 0 0;
}

.circulation .eng_title .image{
	margin: 0 auto 3vw;
    width: 70%;
    line-height: 0;
}

.circulation .top_text{
	margin: 5vw 0 0;
    font-size: 4.8vw;
    text-align: center;
}

.circulation .list{
	margin: 10vw 0 0;
}

.circulation .list > li{
	margin: 10vw 0 0;
}

.circulation .list .ttl{
	margin: 0 auto -10vw;
    width: 40vw;
    line-height: 0;
}

.circulation .list .box{
	background: #F8F8F8;
    box-shadow: 0 0 10px rgba(0,0,0,.16);
}

.circulation .list .photo img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 330 / 172;
}

.circulation .list p{
    padding: 4vw 6vw;
}

.circulation .bg{
    display: none;
}


/* index_case
   ================================================================== */
.index_case{
	margin: 0 0 0;
	padding: 10vw 0 15vw;
}

.index_case .title_jpn{
    margin: 3vw 0 0;
    font-size: 5.7vw;
    font-family: "Zen Kaku Gothic Antique";
    text-align: center;
}

.index_case .top_text{
	margin: 5vw 0 0;
    font-size: 4.8vw;
    font-weight: 500;
    text-align: center;
}

.index_case .list{
	margin: 10vw 0 0;
}

.index_case .list > li{
	margin: 10vw 0 0;
    padding: 5vw 2vw 5vw;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16);
}

.index_case .list .text_box{
    padding: 3vw 3vw 0;
}

.index_case .list .ttl{
    font-size: 4.2vw;
    letter-spacing: 0.06em;
    font-weight: 800;
    text-align: center;
}

.index_case .list .txt{
    margin: 3vw 0 0;
    font-size: 4.0vw;
}

.index_case .list .view_btn{
    margin: 3vw 0 0;
    text-align: right;
}

.index_case .bottom_photo{
    display: none;
}


/* project_flow
   ================================================================== */
.project_flow{
	margin: 0 0 0;
	padding: 0 0 0;
}

.partners_page .project_flow{
	margin-top: 10vw;
}

.project_flow .title{
	padding: 3vw 6vw;
    background-color: #1679AD;
    background-image: url("../images/project_flow/webp/title_bg_sp.webp");
	background-repeat: repeat-x;
	background-position: center center;
	background-size: cover;
}

.project_flow .title .inner > span{
	display: block;
    color: #fff;
    line-height: 150%;
    font-family: "Zen Kaku Gothic Antique";
    font-weight: 700;
}

.project_flow .title .f30{
	font-size: 7vw;
    letter-spacing: 0;
}

.project_flow .title .f28{
	font-size: 7vw;
}

.project_flow .list{
	margin: 8vw auto 0;
    width: 75%;
    overflow: hidden;
}

.project_flow .list > li{
	display: flex;
}

.project_flow .list > li + li{
	padding: 6vw 0 0;
}

.project_flow .list .number{
	padding: 3px;
    width: 10vw;
    height: 10vw;
    box-sizing: border-box;
    border-radius: 100px;
    background: linear-gradient(to bottom,#454F6F,#42A6CB);
    position: relative;
    z-index: 1;
}

.project_flow .list .number > span{
    padding: 0 0 1vw .5vw;
    font-size: 6vw;
    color: #2290CA;
    font-family: "Zen Kaku Gothic Antique";
    font-weight: 700;
    line-height: 1;
	background: #fff;
    display: flex;
	justify-content: center;
	align-items: center;
    text-align: center;
    box-sizing: border-box;
    border-radius: 100px;
    widows: 100%;
    height: 100%;
}

.project_flow .list .line{
    position: relative;
}

.project_flow .list .line:before{
	content: "";
	background: linear-gradient(to bottom,#2495D0,#2495D0);
	width: 3px;
	height: 200vh;
	position: absolute;
	top: 0;
	left: 4.6vw;
}

.project_flow .list .box{
    padding: 1vw 0 0 2vw;
    width: calc(100% - 10vw);
    box-sizing: border-box;
    text-align: center;
}

.project_flow .list .ttl{
    font-size: 5vw;
    letter-spacing: 0;
}

.project_flow .list .thm{
    margin: 2vw auto 0;
    width: 90%;
}

.project_flow .bottom_text{
    margin: 10vw auto 0;
    font-size: 5vw;
    text-align: center;
    font-weight: 500;
}


/* btn_links_section
   ================================================================== */
.btn_links_section{
	padding: 4vw 0 15vw;
}

.btn_links_section .list > li{
	margin: 6vw 0 0;
    line-height: 0;
}

.btn_links_section .list li p{
	margin: 1vw 0 0;
    font-size: 3.2vw;
    font-weight: 600;
    text-align: center;
}

.btn_circle_arrow{
    line-height: 0;
}

.btn_circle_arrow a{
    line-height: 0;
    display: flex;
	justify-content: center;
	align-items: center;
    border-radius: 50px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16);
    background: #169A2F;
}

.btn_circle_arrow.volunteer a{
    background: #2980B9;
}

.btn_circle_arrow a span{
    font-size: 6vw;
    width: calc(100% - 15vw);
    color: #fff;
    font-weight: 700;
    box-sizing: border-box;
    line-height: 1;
    display: flex;
	justify-content: center;
	align-items: center;
}

.btn_circle_arrow a img{
    width: 15vw;
}


/* message
   ================================================================== */
.message{
    margin: 0 0 0;
	padding: 8vw 0;
    background: #EFF2F5;
}

.message .bg_box{
	padding: 8vw 0 8vw 7vw;
    background: #fff;
    border-radius: 31px 0 0 31px;
    position: relative;
}

.message .bg_box:before{
	content: "";
    background: #fff;
	width: 100vw;
	height: 100%;
	position: absolute;
	top: 0;
	left: 100%;
}

.message .title{
	width: 5vw;
    line-height: 0;
    position: absolute;
    top: 0;
    left: -2vw;
}

.message .text_box{
	padding: 0;
}

.message .text_box .left{
	padding: 0;
}

.message .text_box .ttl{
	padding: 0 0 3vw;
    font-size: 7vw;
    position: relative;
}

.message .text_box .ttl:before{
	content: "";
	background: #3498DB;
	width: 100vw;
	height: 1px;
	position: absolute;
	bottom: 0;
	left: 0;
}

.message .text_box p{
	padding: 5vw 0 0;
    font-size: 4vw;
    line-height: 220%;
}

.message .text_box .right{
	padding: 8vw 0 0;
}

.message .text_box .photo{
	padding: 0 0 0;
}

.message .text_box .name{
	padding: 3vw 0 0;
    text-align: right;
}

.message .text_box .name span{
    font-size: 4vw;
    letter-spacing: 0.05em;
    display: block;
    line-height: 150%;
    font-family: "Zen Kaku Gothic New";
}

.message .text_box .name span:nth-child(1){
    padding-right: 4vw;
}


/* links_section
   ================================================================== */
.links_section{
	padding: 15vw 0 8vw;
    display: flex;
}

.links_section .title{
	width: 30vw;
    box-sizing: border-box;
    position: relative;
}

.links_section .title:before{
	content: "";
	background: #F4F6F6;
	width: 50%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}

.links_section .title h2{
	font-size: 5vw;
    text-align: center;
    font-weight: 700;
    position: relative;
    z-index: 1;
}

.links_section .title h2 span{
    line-height: 150%;
    font-weight: 700;
    letter-spacing: 0;
    display: block;
}

.links_section .title h2 .f30{
	font-size: 4.5vw;
}

.links_section .title h2 .f22{
	font-size: 3.5vw;
}

.links_section .list_box{
	width: calc(100% - 30vw);
    box-sizing: border-box;
    overflow: hidden;
}

.links_slider{
    margin: 0 !important;
    width: 50vw;
    opacity: 0;
    transition: .3s;
    overflow: visible !important;
}

.links_slider.swiper-container-horizontal{
    opacity: 1;
}

.is-single .swiper-slide-duplicate{
  display: none;
}

.links_slider a{
    display: block;
    line-height: 0;
}

.links_slider a span{
    display: block;
}

.links_slider .thm{
    line-height: 0;
}

.links_slider .thm img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 1 / 1;
}

.links_slider .text_box{
    padding: 2vw 0 5vw;
}

.links_slider .ttl{
    min-height: 8vw;
    font-size: 3.0vw;
    line-height: 130%;
    font-weight: 700;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.links_slider .text{
    margin: 2vw 0 0;
    font-size: 3.2vw;
    line-height: 130%;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
}


/* volunteer_add_line
   ================================================================== */
.volunteer_add_line{
	padding: 10vw 0;
}

.volunteer_add_line .title{
	text-align: center;
}

.volunteer_add_line .title .yellow_line{
    font-size: 6vw;
    line-height: 150%;
    font-family: "Zen Kaku Gothic Antique";
	background: linear-gradient(rgba(255,255,255,0) 60%, #ff0 0%);
}

.volunteer_add_line .text{
    margin: 2vw 0 0;
    font-size: 3vw;
    font-weight: 700;
    text-align: center;
    font-family: "Zen Kaku Gothic Antique";
}

.volunteer_add_line .line_banner{
    margin: 4vw auto 0;
    line-height: 0;
}

.volunteer_add_line .line_banner a{
    display: block;
    line-height: 0;
}


/* overlap_title
   ================================================================== */
.overlap_title{
	text-align: center;
    position: relative;
}

.overlap_title > span{
	display: block;
}

.overlap_title .overlap_top{
    font-size: 6.5vw;
    line-height: 140%;
    letter-spacing: 0.2em;
    color: #2980B9;
    font-weight: 500;
    font-family: "Zen Kaku Gothic Antique";
    text-shadow: 0 3px 6px rgba(91,183,199,.57);
    position: relative;
    z-index: 1;
}

.overlap_title .overlap_top.shadow_none{
    text-shadow: none;
}

.overlap_title .overlap_top span{
    letter-spacing: inherit;
    color: inherit;
    font-weight: inherit;
    font-family: inherit;
    text-shadow: inherit;
}

.overlap_title .overlap_top .f31{
    font-size: 10vw;
}

.overlap_title .overlap_top .f24{
    font-size: 4vw;
}

.overlap_title .overlap_bottom{
    margin: -5vw auto 0;
    font-size: 11vw;
    white-space: nowrap;
    line-height: 100%;
    letter-spacing: 0;
    color: #EBF7FF;
    font-weight: 600;
    font-family: "Josefin Sans";
    opacity: .58;
}

.overlap_title .overlap_bottom.f75{
    font-size: 15vw;
}


/* future
   ================================================================== */
.future{
	padding: 0 0 10vw;
}

.future .top_box{
	padding: 10vw 0 0;
}

.future .top_box .site_logo{
    margin: 0 auto;
    width: 30vw;
    line-height: 0;
}

.future .top_box .right_box{
    padding: 8vw 0 0;
}

.future .top_box .title{
    font-size: 6.5vw;
    letter-spacing: 0.2em;
    color: #2980B9;
    font-weight: 500;
    font-family: "Zen Kaku Gothic Antique";
    text-shadow: 0 3px 6px rgba(0,0,0,.16);
}

.future .top_box p{
    margin: 4vw 0 0;
}

.future .list{
    margin: 6vw 0 0;
}

.future .list > li{
    margin: 18vw 0 0;
    padding: 1px 5vw 8vw;
    border-radius: 35px;
    background: #F5F4EB;
}

.future .list > li:nth-child(3n+2){
    background: #F0F1EB;
}

.future .list > li:nth-child(3n+3){
    background: #EFF7F7;
}

.future .list .thm{
    margin: -10vw auto 0;
    width: 80%;
    line-height: 0;
}

.future .list .ttl{
    margin: 5vw 0 0;
    display: flex;
    align-items: center;
}

.future .list .ttl span{
    display: block;
    line-height: 150%;
}

.future .list .ttl .number{
    font-size: 10vw;
    letter-spacing: -0.01em;
    color: #000;
    font-weight: 500;
    font-family: "Zen Kaku Gothic Antique";
}

.future .list .ttl .txt{
    margin: 2vw 0 0;
    padding: 0 0 0 7vw;
    font-size: 4vw;
    font-weight: 500;
    position: relative;
}

.future .list .ttl .txt:before{
	content: "";
	background: #222;
	width: 3vw;
	height: 1px;
	position: absolute;
	top: 50%;
	left: 2vw;
}

.future .list p{
    margin: 3vw 0 0;
    font-size: 4vw;
    font-weight: 500;
}

.future .volunteer_only{
    display: none;
}

.volunteer_page .future .volunteer_only{
    margin: 8vw 0 0;
    padding: 2vw;
    background: #F0F0F0;
    display: block;
}

.volunteer_page .future .volunteer_only p{
    font-size: 3.5vw;
    font-weight: 500;
}

/* synergy_section */
.future .synergy_top_box{
	padding: 10vw 0 0;
}

.future .synergy_top_box .site_logo{
    margin: 0 auto;
    width: 30vw;
    line-height: 0;
}

.future .synergy_top_box .overlap_title{
    margin: 8vw 0 0;
}


/* check_section
   ================================================================== */
.check_section{
	padding: 0 0 0;
    background: #F8F8F8;
}

.check_section .list{
	padding: 0 0 0;
}

.check_section .list > li{
	padding: 6vw 0;
    position: relative;
}

.check_section .list > li:nth-child(2):before{
	content: "";
	background: #E6EEF4;
	width: 200vw;
	height: 100%;
	position: absolute;
	top: 0;
	left: -50vw;
}

.check_section .list .inbox{
	position: relative;
    z-index: 1;
}

.check_section .list .ttl{
	padding: 0 0 1vw 4vw;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #2980B9;
    position: relative;
}

.check_section .list .ttl:before{
	content: "";
	background: #2980B9;
	width: 1px;
	height: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
    transform: rotate(15deg);
    transform-origin: left bottom;
}

.check_section .list .ttl > span{
	display: inline-block;
    line-height: 150%;
    font-weight: 700;
}

.check_section .list .ttl .check{
    margin: .5vw 0 0;
	padding: 0 2vw .5vw;
    font-size: 3vw;
    color: #fff;
    background: #000;
}


.check_section .list .ttl .txt{
    padding: 0 0 0 3vw;
    font-size: 5vw;
}

.check_section .list .text{
    margin: 3vw 0 0;
    font-weight: 500;
}


/* get_involved
   ================================================================== */
.get_involved{
	padding: 10vw 0 0;
}

.get_involved .top_box{
	margin: 2vw 0 0;
}

.get_involved .top_box .left{
	padding: 0;
}

.get_involved .top_box .left p{
	font-size: 4.2vw;
    font-weight: 500;
}

.get_involved .top_box .left .ttl{
    margin: 3vw 0 0;
	padding: 2vw 3vw;
    font-size: 5vw;
    font-weight: 700;
    color: #fff;
    background: #53A4DB;
    text-align: center;
}

.get_involved .top_box .right{
	padding: 4vw 0 0;
}

/* step_flow */
.step_flow{
    margin: 5vw -6vw 0;
    padding: 4vw 6vw 12vw;
    background: #F8F8F8;
}

.step_flow > li{
    display: flex;
}

.step_flow > li + li{
    margin: 8vw 0 0;
}

.step_flow .arrow{
    width: 8vw;
    background: linear-gradient(to bottom,#445A95,#10CFD6);
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    clip-path: polygon(0 0, 100% 0%, 100% 90%, 50% 100%, 0 90%);
}

.step_flow > li:nth-child(2) .arrow{
    clip-path: polygon(0 0, 100% 0%, 100% 96%, 50% 100%, 0 96%);
}

.step_flow > li:nth-child(3) .arrow{
    clip-path: polygon(0 0, 100% 0%, 100% 97%, 50% 100%, 0 97%);
}

.step_flow .arrow .arrow_ttl{
    font-size: 4vw;
    letter-spacing: .8em;
    color: #fff;
}

.step_flow .inlist{
    padding: 0 0 0 4vw;
    width: calc(100% - 8vw);
    box-sizing: border-box;
}

.step_flow .inlist > li + li{
    margin: 8vw 0 0;
}

.step_flow .right_box.sp .flex_sp{
    display: flex;
    align-items: end;
}

.step_flow .number_txt > span{
    display: block;
    text-align: center;
    line-height: 1;
    font-family: "Zen Kaku Gothic Antique";
}

.step_flow .number_txt .step{
    font-size: 3vw;
    letter-spacing: 0;
    font-weight: 700;
}

.step_flow .number_txt .no{
    font-size: 10vw;
    letter-spacing: -0.01em;
    font-weight: 500;
    position: relative;
}

.step_flow .number_txt .no:before{
	content: "";
	background: #222;
	width: 3vw;
	height: 1px;
	position: absolute;
	top: 60%;
	left: calc(100% + 2vw);
}

.step_flow .title{
    margin: 0 0 0 8vw;
}

.step_flow .title > span{
    padding: 1vw 2vw;
    font-size: 4vw;
    letter-spacing: 0.15em;
    font-weight: 700;
    position: relative;
    background: #fff;
}

.step_flow p{
    margin: 3vw 0 0;
}


/* trajectory
   ================================================================== */
.trajectory{
	padding: 10vw 0;
    background: #1C87BF;
}

.trajectory .title{
	text-align: center;
}

.trajectory .title > span{
    padding: 0 0 2vw;
    font-size: 5vw;
    color: #fff;
    font-weight: 400;
	display: block;
    border-bottom: 1px solid #fff;
}

.trajectory .list{
    margin: 6vw 0 0;
}

.trajectory .list > li{
    text-align: center;
}

.trajectory .list > li + li{
    margin: 6vw 0 0;
}

.trajectory .list .icon{
    margin: 0 auto;
    width: 40%;
    line-height: 0;
}

.trajectory .list .ttl{
    margin: 3vw 0 0;
}

.trajectory .list .ttl > span{
    padding: 1vw 3vw;
    font-size: 5vw;
    min-width: 35vw;
    font-weight: 500;
    color: #fff;
	display: inline-block;
    background: #3A5C79;
    border-radius: 100px;
    box-sizing: border-box;
}

.trajectory .list p{
    margin: 3vw auto 0;
}

.trajectory .list .image{
    width: 70%;
    line-height: 0;
}

.trajectory .list .txt{
    font-size: 5vw;
    font-weight: 500;
    color: #fff;
}


/* ocean_taro
   ================================================================== */
.ocean_taro{
	padding: 5vw 0;
}

.ocean_taro .text_box{
	padding: 0 0 0;
}

.ocean_taro .text_box .title{
	margin: 0 auto;
    width: 98%;
    line-height: 0;
}

.ocean_taro .text_box .name{
	margin: 5vw 0 0;
    font-size: 5vw;
    font-weight: 400;
    text-align: center;
}

.ocean_taro .text_box .text{
	margin: 5vw 0 0;
    line-height: 220%;
}

.ocean_taro .text_box .bg_box{
	margin: 5vw auto 0;
    padding: 6vw 3vw 8vw;
    background: #F7F7F7;
    border-radius: 14px;
}

.ocean_taro .text_box .ttl{
    font-size: 4.5vw;
    font-weight: 700;
    text-align: center;
}

.ocean_taro .text_box .txt{
	margin: 5vw 0 0;
    line-height: 220%;
}

.ocean_taro .photo_box{
	padding: 5vw 0 0;
}

.ocean_taro .photo_box .source{
	margin: 1vw 0 0;
    font-size: 3.9vw;
    font-weight: 400;
}


/* partners_solution
   ================================================================== */
.partners_solution{
	margin: 0 0 0;
    padding: 10vw 0;
    background: #F8F8F8;
}

.partners_solution .pc_flex{
	margin: 0 auto 0;
}

.partners_solution .thm{
	margin: 0 0 0;
    line-height: 0;
}

.partners_solution .text_box{
	padding: 5vw 0 0;
}

.partners_solution .ttl{
	padding: 0 0 1vw 4vw;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #2980B9;
    position: relative;
}

.partners_solution .ttl:before{
	content: "";
	background: #2980B9;
	width: 1px;
	height: 80%;
	position: absolute;
	bottom: 0;
	left: 0;
    transform: rotate(15deg);
    transform-origin: left bottom;
}

.partners_solution .ttl > span{
	display: inline-block;
    line-height: 150%;
    font-weight: 700;
}

.partners_solution .ttl .txt{
    font-size: 5vw;
}

.partners_solution .text{
    margin: 4vw 0 0;
    font-weight: 500;
}


/* products
   ================================================================== */
.products{
	margin: 0 0 0;
}

.products .box1{
    padding: 10vw 0;
}

.products .box2{
    padding: 6vw 0;
    background: #F8F8F8;
}

.products .flex_box{
    padding: 0;
}

.products .flex_box .left_box{
    padding: 0;
}

.products .flex_box .center_box{
    padding: 2vw 0 0;
}

.products .flex_box .right_box{
    padding: 0;
}

.products .number{
    margin: 0 0 0;
}

.products .number span{
    padding: 0 3vw 0 0;
	font-size: 8vw;
    display: inline-block;
    position: relative;
    font-family: "Zen Kaku Gothic Antique";
    font-weight: 500;
    letter-spacing: -0.001em;
}

.products .number span:before{
	content: "";
    margin: auto;
	background: #222;
	width: 6vw;
	height: 1px;
	position: absolute;
	top: 55%;
	left: 100%;
}

.products .title{
    padding: 1vw 3vw;
    font-size: 5vw;
    font-family: "Zen Kaku Gothic Antique";
    font-weight: 700;
    color: #fff;
    background: linear-gradient(to right,#3EC4EB 0%,#02466A 70%,#02466A 100%);
    display: flex;
	justify-content: center;
	align-items: center;
    border-radius: 100px;
}

/* box1 */
.products .box1 .list{
    margin: 5vw 0 0;
}

.products .box1 .list > li{
    margin: 15vw 0 0;
}

.products .box1 .list .bg_box{
    padding: 1px 28vw 3vw 6vw;
    position: relative;
    border-radius: 50px;
    box-shadow: 0 3px 6px rgba(0,0,0,.16);
}

.products .box1 .list .bg_box .ttl{
    margin: -5vw 0 0;
    font-size: 5vw;
}

.products .box1 .list .bg_box .txt{
    margin: 1vw 0 0;
    font-size: 4vw;
    font-weight: 500;
    line-height: 170%;
}

.products .box1 .list .bg_box img{
    position: absolute;
    bottom: 1vw;
    right: -2vw;
    width: 26vw;
}

.products .box1 .list .text_box{
    margin: 3vw 0 0;
}

.products .box1 .list .text_box p{
    padding: 0 1vw;
    font-size: 4vw;
    font-weight: 500;
    line-height: 170%;
}

.products .box1 .list .text_box p + p{
    margin: 3vw 0 0;
    padding: 3vw 1vw 0;
    border-top: 1px solid #707070;
}

.products .box1 .bottom_box{
    margin: 8vw 0 0;
    padding: 4vw 5vw 5vw;
    background: #DCEBF2;
    border-radius: 22px;
}

.products .box1 .bottom_box p{
    font-size: 4vw;
    font-weight: 700;
    line-height: 170%;
}

/* box2 */
.products .box2 .list{
    margin: 0 0 0;
}

.products .box2 .list > li + li{
    margin: 10vw 0 0;
}

.products .box2 .list .txt{
    margin: 3vw 0 0;
    font-size: 4vw;
    font-weight: 500;
    line-height: 170%;
}

.products .box2 .list .thm{
    margin: 3vw 0 0;
}

.products .box2 .list .thm img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 330 / 206;
}


/* process
   ================================================================== */
.process{
	margin: 0 0 0;
}

.process .title{
    height: 40vw;
	display: flex;
	align-items: center;
    background-image: url("../images/partners/webp/process_bg_sp.webp");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

.process .title .inner{
	position: relative;
}

.process .title .inner:before{
    content: "";
	background-image: url("../images/partners/process_bg_item.svg");
	background-repeat: no-repeat;
	background-position: center left;
	background-size: 100%;
    position: absolute;
    top: -23%;
    left: 6vw;
    width: 113%;
    height: 20vw;
    opacity: .49;
    mix-blend-mode: soft-light;
}

.process .title .txt{
	font-size: 5vw;
    color: #fff;
    font-family: "Zen Kaku Gothic Antique";
    font-weight: 500;
    letter-spacing: 0.2em;
    position: relative;
    display: block;
}

.process .title .txt .siz_s{
    font-size: 4vw;
    color: inherit;
    font-family: inherit;
    font-weight: inherit;
}

.process .ttl{
	margin: -5vw 0 0;
    text-align: center;
}

.process .ttl span{
	padding: 3vw 3vw;
	font-size: 4vw;
    display: block;
    color: #fff;
    font-weight: 700;
    background: linear-gradient(to right,#445A95,#10CFD6);
    clip-path: polygon(0 0, 95% 0, 100% 100%, 0% 100%);
}

.process .pc_flex p{
	margin: 4vw 0 0;
}

.process .pc_flex .thm{
	margin: 4vw 0 0;
}


/* value
   ================================================================== */
.value{
    margin: 0 0 10vw;
	padding: 0 0 10vw;
}

.value .title{
	padding: 1vw 3vw 2vw;
    background: linear-gradient(to right,#445A95,#10CFD6);
	font-size: 5vw;
    color: #fff;
    font-weight: 300;
    position: relative;
    text-align: center;
}

.value .title .siz_l{
    font-size: 6vw;
    color: inherit;
    font-family: inherit;
    font-weight: inherit;
}

.value .list{
    margin: 6vw 0 0;
}

.value .list > li{
    margin: -1vw 0 0;
    padding: 14vw 10vw 3vw;
    height: 90vw;
    position: relative;
    box-sizing: border-box;
}

.value .list > li:before{
	content: "";
    margin: auto;
	background-image: url("../images/partners/value_circle.svg");
	background-repeat: no-repeat;
	background-position: top center;
	background-size: 100%;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
    right: 0;
}

.value .list .inbox{
	position: relative;
    z-index: 1;
}

.value .list .ttl{
    margin: 0 auto;
	padding: 1vw 2vw;
    font-size: 4.5vw;
    width: 95%;
    box-sizing: border-box;
    color: #2980B9;
    text-align: center;
    font-weight: 700;
    background: linear-gradient(120deg,#fff,#E0F3FF);
    border-radius: 100px;
}

.value .list ul{
	margin: 5vw 0 0 8vw;
}

.value .list .txt,
.value .list ul > li{
	margin: 3vw 0 0;
    font-size: 4.5vw;
    line-height: 150%;
    color: #fff;
    font-weight: 700;
    letter-spacing: 0;
}

.value .list .txt{
    margin: 8vw 0 0;
    line-height: 220%;
    text-align: center;
}

.value .list ul > li{
    padding: 0 0 0 7vw;
    position: relative;
}

.value .list ul > li:before{
	content: "";
	background-image: url("../images/partners/value_check.svg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 100% 100%;
	width: 4vw;
	height: 4vw;
	position: absolute;
	top: 1.2vw;
	left: 0;
}


/* vision
   ================================================================== */
.vision{
    padding: 5vw 0 0;
}

.vision .bg_color{
	padding: 5vw 0 12vw;
    background: #F4F4F4;
}

.vision .sp_flex{
	display: flex;
	align-items: center;
}

.vision .thm{
	width: 50%;
}

.vision .thm img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 185 / 101;
}

.vision .title{
    padding: 0 0 0 3vw;
	width: 50%;
    font-size: 5vw;
    letter-spacing: 0.2em;
    box-sizing: border-box;
    font-weight: 700;
}

.vision .text{
    margin: 4vw 0 0;
    font-size: 4vw;
    font-family: "Zen Kaku Gothic Antique";
    font-weight: 700;
}


/* company_section
   ================================================================== */
.company_section{
    padding: 10vw 0 15vw;
}

.company_section .title{
    font-size: 5vw;
    font-weight: 700;
}

.company_section .data{
    margin: 4vw -6vw 0;
    width: 100%;
}

.company_section .data th,
.company_section .data td{
    padding: 2vw 6vw;
    font-size: 4vw;
    line-height: 170%;
    font-weight: 500;
    letter-spacing: 0.1em;
    width: 100%;
    display: block;
}

.company_section .data th{
    background: #F4F4F4;
}

.company_section .data td{
    padding-top: 4vw;
    padding-bottom: 4vw;
}


/* banners_section
   ================================================================== */
.banners_section{
    padding: 5vw 0 0;
    background: #F4F4F4;
}


/* contact_section
   ================================================================== */
.contact_section{
    padding: 5vw 0 15vw;
}

.contact_section .pc_flex{
    padding: 0;
}

.contact_section .step_box{
    padding: 0 6vw;
}

.contact_section .main_box{
    padding: 8vw 0 0;
}


/* contact
   ================================================================== */
.contact{
	padding: 0 0 0;
}

/* form */
.contact form *{
	font-family: "Noto Sans JP";
}

.contact .req{
    font-size: 13px;
    width: 43px;
    height: 19px;
    font-weight: 500;
    letter-spacing: 0.1em;
	color: #fff;
    background: #E74C3C;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    float: right;
}

.contact table{
    margin: 0 auto 0;
	width: 100%;
	box-sizing: border-box;
}

.contact th,
.contact td{
	font-size: 16px;
	line-height: 150%;
	letter-spacing: 0.10em;
	width: 100%;
	display: block;
	font-weight: 500;
	border-bottom: none;
	box-sizing: border-box;
}

.contact th{
	padding: 0 0 10px;
    font-weight: 500;
}

.contact td{
	padding: 0 0 25px;
    position: relative;
}

.contact td .balloon{
    position: absolute;
    bottom: -25px;
    left: 15px;
    height: 16px;
    line-height: 1;
    font-size: 13px;
    color: #E64C3B;
    letter-spacing: 0;
}

.contact output,
.contact input,
.contact select,
.contact textarea{
	margin: 0;
	font-size: 16px;
    line-height: 170%;
    letter-spacing: 0.1em;
	padding: 15px;
	box-sizing: border-box;
	width: 100%;
    background-color: #F2F5F8;
	border: 1px solid #DBDBDB;
	vertical-align: middle;
    border-radius: 4px;
}

/* 確認画面の入力文字背景 */
.contact output{
    display: block;
    background: rgba(246,172,43,.1);
    border-color: rgba(246,172,43,.1);
}

.contact select{
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: url("../images/common/down-arrow.svg");
	background-repeat: no-repeat;
	background-size: 10px 8px;
	background-position: right 16px center;
}

input:focus,
select:focus,
textarea:focus{
    outline: none;
}

textarea::-webkit-input-placeholder,
select::-webkit-input-placeholder,
input::-webkit-input-placeholder{
    color: #ccc;
}

textarea::-moz-placeholder,
textarea::-moz-placeholder,
select::-moz-placeholder{
    color: #ccc; opacity: 1;
}

textarea:-ms-input-placeholder,
select:-ms-input-placeholder,
input:-ms-input-placeholder{
    color: #ccc;
}

.contact textarea{
    height: 50vw;
	line-height: 150%;
}

.zas_btn_area{
	margin: auto;
	text-align: center;
	padding: 30px 0 0;
	font-size: 0;
	box-sizing: border-box;
	max-width: 500px;
}

.zas_btn_area button{
	padding: 0;
	width: 100%;
    max-width: 95%;
    height: 15vw;
	font-size: 5.2vw;
    font-weight: 500;
    font-family: "Zen Kaku Gothic Antique";
    letter-spacing: 0.31em;
    line-height: 150%;
	color: #fff;
	background: #20ADC3;
    border: 1px solid #20ADC3;
	position: relative;
	display: inline-flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    border-radius: 50px;
    cursor: pointer;
}

.zas_btn_area button svg{
	margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 6vw;
    width: 6vw;
}


/* thanks
   ================================================================== */
.thanks{
    text-align: center;
}

.thanks h3{
    margin: 0 0 0;
	font-size: 5.5vw;
	line-height: 150%;
    font-weight: 500;
}

.thanks p{
    margin: 8vw 0 0;
	font-size: 3.5vw;
	line-height: 200%;
}

.thanks .anime_btn{
	margin: 20vw auto 0;
    text-align: center;
}


/* news_list
   ================================================================== */
.news_list{
    padding: 0 0 0;
}

.news_list .bg_gray{
    margin: 6vw 0 0;
    padding: 6vw 0 0;
    background: #F8F8F8;
}

.news_list .categories{
    padding: 0 0 3vw;
}

.news_list .categories .title{
    padding: 0 0 0;
}

.news_list .categories .title span{
    padding: 0 3vw 0 0;
    font-size: 5vw;
    font-weight: 400;
    display: inline-block;
    border-right: 1px solid #707070;
}

.news_list .categories .category_links{
    padding: 5vw 0 0;
}

/* category_links */
.category_links{
    display: flex;
    gap: 3vw;
}

.category_links ul{
    display: flex;
    flex-wrap: wrap;
    gap: 3vw;
}

.category_links li{
    display: flex;
}

.category_links li a{
    padding: .5vw 5vw;
    font-size: 3vw;
    font-weight: 700;
    letter-spacing: 0.28em;
    background: #fff;
    border-radius: 100px;
    display: flex;
	justify-content: center;
	align-items: center;
}

.category_links.black li a{
    font-size: 2.8vw;
    letter-spacing: 0.1em;
    background: #000;
    color: #fff;
}

/* blog_list */
.blog_list{
    margin: 0 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4%;
}

.blog_list > li{
    margin: 6vw 0 0;
    width: 48%;
}

.blog_list a{
    display: block;
}

.blog_list a span{
    display: block;
}

.blog_list .thm{
    width: 100%;
}

.blog_list .thm img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 280 / 200;
}

.blog_list .text_box{
    padding: 3vw 0 0;
}

.blog_list .text_top{
    padding: 0 0 0;
}

.blog_list .date{
    font-size: 3vw;
    letter-spacing: 0;
    font-weight: 900;
}

.blog_list .page_categories{
    display: flex;
    flex-wrap: wrap;
    gap: 1vw;
}

.blog_list .page_categories > span{
    padding: 1vw 3vw;
    font-size: 2vw;
    line-height: 150%;
    font-weight: 700;
    letter-spacing: 0.28em;
    background: #fff;
    border-radius: 100px;
    display: flex;
	justify-content: center;
	align-items: center;
}

.blog_list .ttl{
    margin: 3vw 0 0;
    font-size: 3.5vw;
    line-height: 150%;
    font-weight: 500;
    letter-spacing: 0.08em;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
}


/* pgn
   ================================================================== */
.pgn{
	text-align: center;
	padding: 10vw 0 5px;
	font-size: 0;
}

.pgn nav > div:first-child{
	display: none;
}

.pgn nav > div > div > span{
	display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.pgn nav > div > div > span > *{
    vertical-align: top;
	margin: 6px 3px 0;
	text-decoration: none;
	background: #fff;
	color: #C3C3C3;
    border: 1px solid #2980B9;
	padding: 2px 0 0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 16px;
    font-weight: 700;
	width: 34px;
	height: 34px;
    box-sizing: border-box;
    letter-spacing: 0;
    transition: all ease-out 0.3s;
}

.pgn nav > div > div > span > * span{
	color: #FFF;
    font-family: inherit;
}

.pgn nav > div > div > span svg{
    width: 18px;
}

.pgn nav > div > div > span > span{
	background: #2980B9;
    color: #fff;
}

.pgn nav > div > div > span > span:first-child,
.pgn nav > div > div > span > span:last-child{
	display: none;
}


/* news_show_section
   ================================================================== */
.news_show_section{
    padding: 5vw 0 0;
}

/* show_aside */
.show_aside{
    padding: 25vw 0 0;
    width: 100%;
    box-sizing: border-box;
}

/* news_show_bottom */
.news_show_bottom{
    margin: 20vw 0 0;
}


/* detail_page
   ================================================================== */
.detail_page{
	margin: 0 0 0;
	font-size: 16px;
	word-break: break-all;
}

.detail_page .detail_box h1{
	font-size: 24px;
	font-weight: bold;
	margin: 0 0 10px;
	padding: 0 0 10px;
	word-break: break-all;
	line-height: 150%;
}

.detail_page .show_top_flex{
	margin: 3vw 0 0;
    display: flex;
    flex-wrap: wrap;
}

.detail_page .date{
    width: 22vw;
    font-size: 3.5vw;
    color: #333;
    font-weight: 400;
    display: inline-block;
    vertical-align: middle;
}

.detail_page .detail_categories{
	margin: -.5vw 0 0;
    width: calc(100% - 22vw);
    box-sizing: border-box;
}

.detail_page .detail_categories > ul{
    font-size: 0;
    width: 100%;
}

.detail_page .detail_categories ul{
    display: flex;
    flex-wrap: wrap;
    gap: 3vw;
}

.detail_page .detail_categories li{
    display: flex;
}

.detail_page .detail_categories li a{
    padding: .5vw 5vw;
    font-size: 2.8vw;
    font-weight: 700;
    letter-spacing: 0.1em;
    background: #000;
    border-radius: 100px;
    display: flex;
	justify-content: center;
	align-items: center;
    color: #fff;
}

.detail_page .photo{
	margin: 4vw 0 0;
	line-height: 0;
}
	
.detail_page .photo img{
	max-height: 500px;
}
	
.detail_page .detail_body{
	margin: 4vw 0 0;
    clear: both;
}


/* detail_btn_area
   ================================================================== */
.detail_btn_area{
	margin: 10vw 0 0;
	font-size: 0;
    text-align: center;
}

.detail_btn_area .detail_arrow_btn{
	margin: 0;
	display: inline-block;
	vertical-align: top;
	box-sizing: border-box;
	width: 40%;
    max-width: 310px;
}
	
.detail_btn_area .detail_arrow_btn.prev,
.detail_btn_area .detail_arrow_btn.next{
	width: 28%;
}

.detail_btn_area .detail_arrow_btn.back{
	margin: 0 2%;
}

.detail_btn_area .detail_arrow_btn a,
.detail_btn_area .detail_arrow_btn button{
	display: flex;
    justify-content: center;
    align-items: center;
	margin: auto;
	padding: 10px 0;
    box-sizing: border-box;
	width: 100%;
    height: 50px;
	background: #A7A7A7;
	color: #fff;
	text-align: center;
	font-size: 3vw;
    font-weight: 700;
    line-height: 0;
	letter-spacing: 0.10em;
    border-radius: 100px;
    position: relative;
}

.detail_btn_area .detail_arrow_btn a svg,
.detail_btn_area .detail_arrow_btn button svg{
	position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    width: 1.5vw;
}

.detail_btn_area .detail_arrow_btn.prev a svg,
.detail_btn_area .detail_arrow_btn.prev button svg{
	left: 2vw;
}

.detail_btn_area .detail_arrow_btn.next a svg,
.detail_btn_area .detail_arrow_btn.next button svg{
	right: 2vw;
}
 	

/* side_banner
   ================================================================== */
.side_banner + .side_banner{
    margin: 5vw 0 0;
}

.side_banner a{
    display: block;
    line-height: 0;
}


/* aside_list_wrap
   ================================================================== */
.aside_list_wrap{
    padding: 5.0vw 0 0;
}

.aside_list_wrap .aside_ttl{
    padding: 0 3vw;
    width: 100%;
    height: 10vw;
    font-size: 4vw;
    box-sizing: border-box;
    background: #2980B9;
    color: #fff;
    text-align: center;
    display: flex;
    align-items: center;
}

.aside_list_wrap .aside_list{
    border: 1px solid #A8A8A8;
    border-top: none;
}

.aside_list_wrap .aside_list > li a{
    padding: 3.0vw;
    display: block;
}

.aside_list_wrap .aside_list > li:nth-child(n+2){
    border-top: 1px solid #A8A8A8;
}

.aside_list_wrap .aside_list > li:nth-child(n+2) a{
    display: flex;
    align-items: center;
}

.aside_list_wrap .aside_list > li a span{
    display: block;
}

.aside_list_wrap .thm img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 1 / 1;
}

.aside_list_wrap .ttl{
    padding: 3vw 0 0;
    font-size: 3.1vw;
    line-height: 3.5vw;
    box-sizing: border-box;
    overflow: hidden;
    display: -webkit-box !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

/* 2個目以降 */
.aside_list_wrap .aside_list > li:nth-child(n+2) a{
    display: flex;
    align-items: center;
}

.aside_list_wrap .aside_list > li:nth-child(n+2) .thm{
    width: 35%;
}

.aside_list_wrap .aside_list > li:nth-child(n+2) .ttl{
    padding: 0 0 0 3vw;
    width: calc(100% - 35%);
}


@media screen and (min-width : 500px){


    /* banners_list
       ================================================================== */
    .banners_list{
        width: 90.0vw;
        display: flex;
        flex-wrap: wrap;
        gap: 4.22%;
    }

    .banners_list > li{
        margin: 0 0 1.5vw;
        width: 47.89%;
    }


    /* under_title_section
       ================================================================== */
    .under_title_section .title{
        font-size: 2.8vw;
        height: 9.5vw;
    }

    /* pankz */
    .pankz{
        margin: 1.0vw auto 0;
        padding: 0 5.0vw;
        box-sizing: border-box;
    }

    .pankz > li{
        margin: 0 2.7vw 1.5vw 0;
    }

    .pankz > li::before{
        width: .7vw;
        height: 2.1vw;
        left: calc(100% + 1.0vw);
    }

    .pankz > li > span,
    .pankz > li a{
        font-size: 1.4vw;
    }

    .pankz > li a:hover{
        text-decoration: underline;
    }


    /* movie_kv
       ================================================================== */
    .movie_kv{
        height: 68vh;
        min-height: 683px;
    }

    .movie_kv.index_kv{
        padding-bottom: 14.0vw;
        height: 100vh;
    }

    .movie_kv .inbox{
        padding: 0 0 0;
    }

    .movie_kv .page_title{
        margin: 0 auto 1.0vw;
    }

    .movie_kv .page_title span{
        padding: .7vw 6.0vw;
        min-width: 30.0vw;
        font-size: 2.2vw;
    }

    .movie_kv .catch{
        font-size: 3.6vw;
        line-height: 5.2vw;
    }

    .movie_kv.index_kv .catch{
        font-size: 4.8vw;
    }

    .movie_kv .inbox p{
        margin: 2.0vw 0 0;
        font-size: 2.4vw;
        line-height: 3.5vw;
    }

    .movie_kv .eng{
        font-size: 1.2vw;
        line-height: 2.0vw;
        left: 4.5vw;
        bottom: 1.5vw;
    }
        

    /* index_partners
       ================================================================== */
    .index_partners{
        padding: 3.0vw 0 13.0vw;
    }

    .index_partners:before{
        height: 12.0vw;
    }

    .index_partners .title{
        margin: 8.0vw auto 0;
        width: 10.0vw;
    }

    .index_partners .partner_name{
        margin: 1.5vw auto 4.0vw;
        font-size: 3.2vw;
        line-height: 4.4vw;
    }

    .index_partners .partner_name .siz_s{
        font-size: 2.8vw;
    }


    /* partners_projects
       ================================================================== */
    .partners_projects{
        padding: 5.0vw 0;
    }

    .partners_projects .title{
        width: 23.7vw;
    }

    .partners_projects .partner_name{
        margin: 1.5vw auto 4.0vw;
        font-size: 3.2vw;
        line-height: 4.4vw;
    }

    .partners_projects .note{
        margin: -.3vw 0 0;
        font-size: 1.3vw;
        text-align: center;
    }


    /* solution
       ================================================================== */
    .solution{
        margin: 0 0 0;
    }

    .solution:after{
        width: 100vw;
        bottom: 0;
        right: 0;
    }

    .solution .inner{
        display: flex;
    }

    .solution .left{
        padding: 7.6vw 0;
        width: 36.5%;
        box-sizing: border-box;
    }

    .solution .site_logo{
        width: 20.0vw;
    }

    .solution .right{
        padding: 7.0vw 0 16.3vw 16.6vw;
        width: calc(100% - 36.5%);
        box-sizing: border-box;
    }

    .solution .right:before{
        left: 0;
    }

    .solution .title{
        margin: 0 0 0 -2.1vw;
        width: 36.3vw;
    }

    .solution .list{
        margin: 8.5vw 0 0;
    }

    .solution .list > li{
        padding: 1.0vw 0 0;
        position: relative;
    }

    .solution .list > li + li{
        margin: 12.0vw 0 0;
    }

    .solution .list .photo{
        width: 46.9vw;
        position: absolute;
        top: 0;
        left: -51.3vw;
    }

    .solution .list .photo img{
        aspect-ratio: 519 / 285;
    }

    .solution .list .text_box{
        margin: 0 0 0;
        min-height: 24.5vw;
    }

    .solution .list .ttl .number{
        width: 5.9vw;
    }

    .solution .list .ttl .txt{
        margin: 2.4vw 0 0;
        font-size: 2.4vw;
        line-height: 3.5vw;
    }

    .solution .list .text{
        margin: 2.0vw 0 0;
        line-height: 3.7vw;
    }


    /* eng_title
       ================================================================== */
    .eng_title .siz_34{
        font-size: 3.4vw;
    }

    .eng_title .siz_32{
        font-size: 3.2vw;
    }

    .eng_title .siz_14{
        font-size: 1.4vw;
    }


    /* debris
       ================================================================== */
    .debris{
        margin: 0 0 0;
        padding: 8.5vw 0 12.0vw;
    }

    .debris .title_jpn{
        margin: 1.4vw 0 0;
        font-size: 2.8vw;
    }

    .debris .title_jpn .siz_s{
        font-size: 2.4vw;
    }

    .debris .text_box{
        margin: 6.0vw 0 0;
        position: relative;
    }

    .debris .text_box .ttl{
        width: 40.1vw;
    }

    .debris .text_box .photo{
        margin: 0 0 0;
        position: absolute;
        top: 2.6vw;
        left: 51.4vw;
        width: 46.9vw;
    }

    .debris .text_box .text{
        margin: 1.3vw 0 0;
        width: 48.0vw;
    }

    .debris .text_box .source{
        margin: 1.3vw 0 0;
        font-size: 1.2vw;
        line-height: 1.6vw;
    }

    .debris .text_box .source .pc_indent{
        margin-left: 3.8vw;
    }


    /* approach_band
       ================================================================== */
    .approach_band{
        display: flex;
    }

    .approach_band > div{
        height: 30.0vw;
        box-sizing: border-box;
    }

    .approach_band .photo{
        margin: 0;
        width: 45%;
    }

    .approach_band .photo img{
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .approach_band .text_box{
        padding: 5.2vw 0 0 6.4vw;
        width: 55%;
    }

    .approach_band .title_jpn{
        margin: 2.0vw 0 0;
        font-size: 3.0vw;
        line-height: 4.4vw;
    }


    /* approach_section
       ================================================================== */
    .approach_section{
        padding: 7.8vw 0 0;
    }

    .approach_section .approach_kv{
        margin: 0 0 0;
    }

    .approach_section .approach_kv .title{
        width: 39.1vw;
    }

    .approach_section .approach_kv .photo{
        margin: -2.5vw -.9vw 0;
    }

    .approach_section .approach_kv .text{
        margin: .5vw 0 0;
        font-size: 1.8vw;
        line-height: 3.3vw;
    }

    .approach_section .arrow{
        margin: 7.3vw auto 3.8vw;
        width: 12.2vw;
        position: relative;
        z-index: 1;
    }

    .approach_section .approach_box + .arrow{
        margin: -1.5vw auto 0;
    }

    .approach_section .approach_box{
        margin: 2.4vw 0 0;
        padding: 3.0vw 30.0vw 8.0vw 3.0vw;
        width: 80.0vw;
        position: relative;
        box-sizing: border-box;
        background: none;
    }
    
    .approach_section .approach_box:before{
        content: "";
        background: linear-gradient(125deg,rgba(250,250,250,.52) 0%,rgba(221,240,250,.52) 40%,rgba(242,242,242,.52) 70%,rgba(250,250,250,.52) 100%);
        width: 100vw;
        height: 100%;
        position: absolute;
        top: 0;
        right: 0;
        border-radius: 0 34px 27px 0;
    }

    .approach_section .approach_box > *{
        position: relative;
        z-index: 1;
    }

    .approach_section .approach_box .number > span{
        padding: 0 1.3vw 0 0;
        font-size: 4.4vw;
    }

    .approach_section .approach_box .number > span:before{
        width: 3.3vw;
    }

    .approach_section .approach_box .ttl{
        margin: 2.5vw 0 0;
        font-size: 2.4vw;
        line-height: 3.0vw;
    }

    .approach_section .approach_box .text{
        margin: 3.0vw 0 0;
        font-size: 1.6vw;
        line-height: 3.4vw;
    }

    .approach_section .approach_box .text .pueple{
        margin-right: 1.0vw;
        width: 1.5vw;
    }

    .approach_section .approach_box.no06 .text{
        line-height: 4.5vw;
    }

    .approach_section .approach_box .photo{
        margin: 0;
        position: absolute;
        top: 14.0vw;
        left: 53.3vw;
        width: 44.7vw;
    }

    .approach_section .approach_box.no06 .photo{
        top: 1.5vw;
        left: 53.3vw;
        width: 40.0vw;
    }


    /* circulation
       ================================================================== */
    .circulation{
        padding: 8.0vw 0 0;
    }

    .circulation .inner{
        position: relative;
    }

    .circulation .eng_title .image{
        margin: 0 auto .7vw;
        width: 47.5vw;
    }

    .circulation .top_text{
        margin: 3.5vw 0 0;
        font-size: 1.8vw;
        line-height: 4.0vw;
    }

    .circulation .list{
        margin: 5.5vw auto 0;
        width: 95%;
        display: flex;
        flex-wrap: wrap;
        gap: 2%;
        position: relative;
        z-index: 1;
    }

    .circulation .list > li{
        margin: 0 0 0;
        width: 32%;
    }

    .circulation .list .ttl{
        margin: 0 auto -3.0vw;
        width: 17.0vw;
    }

    .circulation .list .photo img{
        aspect-ratio: 287 / 172;
    }

    .circulation .list p{
        padding: 2.0vw 1.2vw 1.0vw;
        min-height: 21.2vw;
        box-sizing: border-box;
    }

    .circulation .bg{
        display: block;
        position: absolute;
        width: 64.4vw;
        left: -22.8vw;
        top: 33.8vw;
    }


    /* index_case
       ================================================================== */
    .index_case{
        padding: 10.0vw 0 7.0vw;
    }

    .index_case .title_jpn{
        margin: 2.0vw 0 0;
        font-size: 2.8vw;
    }

    .index_case .top_text{
        margin: 2.0vw 0 0;
        font-size: 1.8vw;
        line-height: 4.0vw;
    }

    .index_case .list{
        margin: 3.0vw auto 0;
        width: 95%;
        display: flex;
        flex-wrap: wrap;
        gap: 3.6%;
    }

    .index_case .list > li{
        margin: 2.5vw 0 0;
        padding: 2.8vw 1.4vw 4.0vw;
        width: 48.2%;
        box-sizing: border-box;
    }

    .index_case .list .text_box{
        padding: 3.0vw 1.2vw 0;
    }

    .index_case .list .ttl{
        font-size: 1.8vw;
        letter-spacing: 0;
    }

    .index_case .list .txt{
        margin: 2.0vw 0 0;
        font-size: 1.6vw;
        line-height: 3.0vw;
    }

    .index_case .list .view_btn{
        margin: 1.7vw 1.0vw 0 0;
    }

    .index_case .bottom_photo{
        margin: 10.6vw auto 0;
        width: 95%;
        display: block;
    }


    /* project_flow
       ================================================================== */
    .project_flow{
        padding: 0 0 0;
    }

    .partners_page .project_flow{
        margin-top: 12.0vw;
    }

    .project_flow .title{
        padding: 2.3vw 0;
        background-image: url("../images/project_flow/webp/title_bg.webp");
        background-size: 100% auto;
    }

    .project_flow .title .inner{
        padding-left: 7.0vw;
        display: flex;
        align-items: center;
    }

    .project_flow .title .f30{
        font-size: 3.0vw;
        letter-spacing: 0.1em;
    }

    .project_flow .title .f28{
        margin-left: 6.0vw;
        font-size: 2.8vw;
    }

    .project_flow .list{
        margin: 4.0vw auto 0;
        width: 90%;
        display: flex;
        justify-content: space-between;
    }

    .project_flow .list > li{
        width: auto;
        display: block;
    }

    .project_flow .list > li + li{
        padding: 0 0 0;
    }

    .project_flow .list .number{
        padding: .3vw;
        width: 4.3vw;
        height: 4.3vw;
    }

    .project_flow .list .number > span{
        padding: 0 0 .4vw .2vw;
        font-size: 2.8vw;
    }

    .project_flow .list .line:before{
        content: "";
        background: linear-gradient(to right,#2495D0,#2495D0);
        width: 100vw;
        height: .2vw;
        top: 2.2vw;
        left: 0;
    }

    .project_flow .list .box{
        padding: .7vw 0 0;
        width: 100%;
    }

    .project_flow .list .ttl{
        font-size: 1.8vw;
    }

    .project_flow .list .thm{
        margin: 2.5vw auto 0;
        width: 18.0vw;
    }

    .project_flow .bottom_text{
        margin: 3.5vw auto 0;
        font-size: 1.8vw;
        line-height: 3.4vw;
    }


    /* btn_links_section
       ================================================================== */
    .btn_links_section{
        padding: 7.0vw 0 10.0vw;
    }

    .btn_links_section .list{
        margin: 0 auto;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 4.2vw;
    }

    .btn_links_section .list > li{
        margin: 0 0 0;
        width: 42.9vw;
    }

    .btn_links_section .list li p{
        margin: .3vw 0 0;
        font-size: 1.5vw;
    }

    .btn_circle_arrow{
        margin: 0 auto;
        width: 38.0vw;
    }

    .btn_circle_arrow a{
        border: 1px solid #169A2F;
        transition: .3s;
    }

    .btn_circle_arrow.volunteer a{
        border-color: #2980B9;
    }

    .btn_circle_arrow a:hover{
        background: #fff;
    }

    .btn_circle_arrow a:hover span{
        color: #169A2F;
    }

    .btn_circle_arrow.volunteer a:hover span{
        color: #2980B9;
    }

    .btn_circle_arrow a span{
        font-size: 2.6vw;
        width: calc(100% - 7.2vw);
        transition: .3s;
    }

    .btn_circle_arrow a img{
        width: 7.2vw;
    }


    /* message
       ================================================================== */
    .message{
        margin: 0 0 0;
        padding: 6.0vw 0;
    }

    .message .bg_box{
        padding: 5.6vw 5.0vw 3.5vw 5.0vw;
    }

    .message .title{
        width: 2.2vw;
        top: 3.2vw;
        left: -1.3vw;
    }

    .message .text_box{
        display: flex;
    }

    .message .text_box .left{
        padding: 0;
        width: 45.0vw;
        box-sizing: border-box;
    }

    .message .text_box .ttl{
        padding: 0 0 1.6vw;
        font-size: 2.8vw;
        line-height: 4.0vw;
    }

    .message .text_box .ttl:before{
        width: 100%;
    }

    .message .text_box p{
        padding: 2.7vw 0 0;
        font-size: 1.6vw;
        line-height: 3.8vw;
    }

    .message .text_box .right{
        padding: 0 0 0 5.0vw;
        width: calc(100% - 45.0vw);
        box-sizing: border-box;
    }

    .message .text_box .photo{
        padding: 0 0 0;
    }

    .message .text_box .name{
        padding: 1.5vw 2.4vw 0 0;
    }

    .message .text_box .name span{
        font-size: 1.6vw;
    }

    .message .text_box .name span:nth-child(1){
        padding-right: 3.0vw;
    }


    /* links_section
       ================================================================== */
    .links_section{
        padding: 10.0vw 0 3.8vw;
    }

    .links_section .title{
        width: 23.3vw;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .links_section .title:before{
        width: 50%;
    }

    .links_section .title h2{
        font-size: 3.4vw;
        line-height: 4.5vw;
    }

    .links_section .title h2 span{
        line-height: 3.5vw;
    }

    .links_section .title h2 .f30{
        font-size: 3.0vw;
    }

    .links_section .title h2 .f22{
        font-size: 2.2vw;
    }

    .links_section .list_box{
        width: calc(100% - 23.3vw);
    }

    .links_slider{
        width: 64.0vw;
    }
 
    .links_slider .thm{
        overflow: hidden;
    }
 
    .links_slider .text_box{
        padding: 1.0vw 0 1.5vw;
    }

    .links_slider .ttl{
        min-height: 4.8vw;
        font-size: 1.8vw;
        line-height: 2.4vw;
    }

    .links_slider .text{
        margin: 1.0vw 0 0;
        font-size: 1.6vw;
        line-height: 2.4vw;
        -webkit-line-clamp: 2;
    }
 
    .links_slider .thm img,
    .links_slider .text_box span{
        transition: .3s;
    }
 
    .links_slider a:hover .thm img{
        transform: scale(1.05);
    }
 
    .links_slider a:hover .text_box span{
        color: #005E88;
    }


    /* volunteer_add_line
       ================================================================== */
    .volunteer_add_line{
        padding: 4.5vw 0;
    }

    .volunteer_add_line .title{
        text-align: left;
    }

    .volunteer_add_line .title .yellow_line{
        font-size: 2.8vw;
    }

    .volunteer_add_line .text{
        margin: .5vw 0 0;
        font-size: 1.8vw;
        text-align: left;
    }

    .volunteer_add_line .line_banner{
        margin: 1.5vw auto 0;
    }


    /* overlap_title
       ================================================================== */
    .overlap_title .overlap_top{
        font-size: 2.8vw;
        line-height: 4.3vw;
    }

    .overlap_title .overlap_top .f31{
        font-size: 3.1vw;
    }

    .overlap_title .overlap_top .f24{
        font-size: 2.4vw;
    }

    .overlap_title .overlap_bottom{
        margin: -2.2vw auto 0;
        font-size: 6.9vw;
    }

    .overlap_title .overlap_bottom.f75{
        font-size: 7.5vw;
    }


    /* future
       ================================================================== */
    .future{
        padding: 6.0vw 0 6.0vw;
    }

    .future .top_box{
        padding: 0 1.0vw;
        display: flex;
    }

    .future .top_box .site_logo{
        margin: 0;
        width: 13.8vw;
    }

    .future .top_box .right_box{
        padding: 0 0 0 3.0vw;
        width: calc(100% - 13.8vw);
        box-sizing: border-box;
    }

    .future .top_box .title{
        font-size: 2.8vw;
    }

    .future .top_box p{
        margin: 1.3vw 0 0;
        line-height: 2.8vw;
    }

    .future .list{
        margin: 0 1.0vw 0;
        display: flex;
        flex-wrap: wrap;
        gap: 2%;
    }

    .future .list > li{
        margin: 8.0vw 0 0;
        padding: 1px 2.5vw 2.5vw;
        width: 32%;
        box-sizing: border-box;
    }

    .future .list .thm{
        margin: -3.4vw auto 0;
        width: 22.6vw;
    }

    .future .list .ttl{
        margin: .3vw 0 0;
    }

    .future .list .ttl .number{
        font-size: 4.1vw;
    }

    .future .list .ttl .txt{
        margin: 1.0vw 0 0;
        padding: 0 0 0 3.2vw;
        font-size: 1.6vw;
    }

    .future .list .ttl .txt:before{
        width: 1.2vw;
        left: .7vw;
    }

    .future .list p{
        margin: .8vw 0 0;
        font-size: 1.6vw;
        line-height: 2.8vw;
    }

    .volunteer_page .future .volunteer_only{
        margin: 2.3vw 1.0vw 0;
        padding: 1.6vw 1.0vw 1.6vw 2.8vw;
    }

    .volunteer_page .future .volunteer_only p{
        font-size: 1.5vw;
        line-height: 2.8vw;
    }

    /* synergy_section */
    .future .synergy_top_box{
        padding: 0 0 0;
    }

    .future .synergy_top_box .site_logo{
        width: 12.6vw;
    }

    .future .synergy_top_box .overlap_title{
        margin: 2.5vw 0 0;
    }

    .future.synergy_section .list{
        margin-top: -4.0vw;
    }

    .future.synergy_section .list .ttl .txt{
        margin-right: -2.0vw;
        font-size: 1.5vw;
        letter-spacing: 0;
        line-height: 2.4vw;
    }


    /* check_section
       ================================================================== */
    .check_section{
        padding: 0 0 0;
    }

    .check_section .list{
        padding-right: 2.5vw;
        display: flex;
    }

    .check_section .list > li{
        padding: 2.3vw 0 4.0vw;
        width: calc(50% + 4.0vw);
        box-sizing: border-box;
    }

    .check_section .list > li:nth-child(2){
        width: calc(50% - 4.0vw);
        border-left: 1px solid #E6EEF4;
    }

    .check_section .list > li:nth-child(2):before{
        left: 0;
    }

    .check_section .list > li:nth-child(2):after{
        content: "";
        background: #E6EEF4;
        clip-path: polygon(100% 0, 0% 100%, 100% 100%);
        width: 8.0vw;
        height: 100%;
        position: absolute;
        top: 0;
        right: 100%;
    }

    .check_section .list .inbox{
        margin: auto;
        width: 39.6vw;
    }

    .check_section .list .ttl{
        padding: 0 0 .7vw 2.4vw;
    }

    .check_section .list .ttl .check{
        margin: .5vw 0 0;
        padding: 0 1.4vw .2vw;
        font-size: 1.4vw;
    }

    .check_section .list .ttl .txt{
        padding: 0 0 0 1.4vw;
        font-size: 2.4vw;
    }

    .check_section .list .text{
        margin: 2.5vw 0 0;
        line-height: 3.8vw;
    }


    /* get_involved
       ================================================================== */
    .get_involved{
        padding: 6.0vw 0 0;
    }

    .get_involved .inner{
        padding: 0 7.0vw;
    }

    .get_involved .top_box{
        margin: 3.5vw 0 0;
        display: flex;
    }

    .get_involved .top_box .left{
        padding: 0 2.9vw 0 0;
        width: 48.4vw;
        box-sizing: border-box;
    }

    .get_involved .top_box .left p{
        font-size: 1.8vw;
        line-height: 3.2vw;
    }

    .get_involved .top_box .left .ttl{
        margin: 2.0vw 0 0;
        padding: .3vw 2.0vw;
        font-size: 1.8vw;
    }

    .get_involved .top_box .right{
        padding: 0 0 0;
        width: calc(100% - 48.4vw);
    }

    /* step_flow */
    .step_flow{
        margin: 4.0vw 0 0;
        padding: 1.7vw 3.0vw 3.0vw;
        border-radius: 2.2vw;
    }

    .step_flow > li{
        display: flex;
    }

    .step_flow > li + li{
        margin: 1.0vw 0 0;
        padding: 1.0vw 0 0;
        border-top: 1px solid #B7D3E8;
    }

    .step_flow .arrow{
        width: 3.6vw;
        clip-path: polygon(0 0, 100% 0%, 100% 95%, 50% 100%, 0 95%);
    }

    .step_flow .arrow .arrow_ttl{
        font-size: 1.5vw;
        letter-spacing: .8em;
    }

    .step_flow .inlist{
        padding: 1.5vw 0 0 2.3vw;
        width: calc(100% - 3.6vw);
    }

    .step_flow .inlist > li{
        display: flex;
    }

    .step_flow .inlist > li + li{
        margin: 3.0vw 0 0;
    }

    .step_flow .number_txt .step{
        font-size: 1.3vw;
    }

    .step_flow .number_txt .no{
        margin-top: -.5vw;
        font-size: 4.4vw;
    }

    .step_flow .number_txt .no:before{
        width: 2.0vw;
        top: 60%;
        left: calc(100% + 1.7vw);
    }

    .step_flow .right_box.pc{
        padding: 2.4vw 0 1.3vw 6.0vw;
        display: block;
    }

    .step_flow .title{
        margin: 0 0 0;
    }

    .step_flow .title > span{
        padding: .7vw 2.0vw;
        font-size: 1.8vw;
    }

    .step_flow .right_box .text_box{
        display: flex;
    }

    .step_flow p{
        margin: 1.5vw 0 0 2.0vw;
        line-height: 2.8vw;
    }

    .step_flow .line_btn{
        margin: 0 0 0 2.0vw;
        width: 22.0vw;
    }


    /* trajectory
       ================================================================== */
    .trajectory{
        padding: 4.4vw 0 4.8vw;
    }

    .trajectory .title > span{
        padding: 0 2.5vw 1.7vw;
        font-size: 2.8vw;
        display: inline-block;
    }

    .trajectory .list{
        margin: 4.4vw auto 0;
        display: flex;
        justify-content: center;
    }

    .trajectory .list > li{
        padding: 1.0vw 0 1.7vw;
        width: 33%;
    }

    .trajectory .list > li + li{
        margin: 0 0 0;
        border-left: 1px solid #3FB2EF;
    }

    .trajectory .list .icon{
        width: 12.5vw;
    }

    .trajectory .list .ttl{
        margin: 1.2vw 0 0;
    }

    .trajectory .list .ttl > span{
        padding: .6vw 1.5vw;
        font-size: 1.8vw;
        min-width: 12.7vw;
    }

    .trajectory .list p{
        margin: 1.2vw auto 0;
    }

    .trajectory .list .image{
        width: 19.7vw;
    }

    .trajectory .list .txt{
        font-size: 1.7vw;
        line-height: 3.0vw;
    }


    /* ocean_taro
       ================================================================== */
    .ocean_taro{
        padding: 6.0vw 0 0;
    }

    .ocean_taro .inner{
        display: flex;
        justify-content: flex-end;
        flex-direction: row-reverse;
    }

    .ocean_taro .text_box{
        padding: 0 0 0 3.6vw;
        width: 57.6vw;
        box-sizing: border-box;
    }

    .ocean_taro .text_box .title{
        width: 35.1vw;
    }

    .ocean_taro .text_box .name{
        margin: 1.2vw 0 0;
        font-size: 2.0vw;
    }

    .ocean_taro .text_box .text{
        margin: 2.0vw 0 0;
        line-height: 3.4vw;
    }

    .ocean_taro .text_box .bg_box{
        margin: 3.5vw auto 0;
        padding: 1.2vw 1.8vw 2.7vw;
    }

    .ocean_taro .text_box .ttl{
        font-size: 2.0vw;
    }

    .ocean_taro .text_box .txt{
        margin: 1.1vw 0 0;
        line-height: 3.1vw;
    }

    .ocean_taro .photo_box{
        padding: 2.5vw 0 0;
        width: 37.4vw;
        box-sizing: border-box;
    }

    .ocean_taro .photo_box .source{
        margin: .7vw 0 0;
        font-size: 1.8vw;
        text-align: center;
    }


    /* partners_solution
       ================================================================== */
    .partners_solution{
        margin: 0 0 0;
        padding: 6.5vw 0 8.5vw;
    }

    .partners_solution .pc_flex{
        margin: 0 7.5vw 0 2.5vw;
        display: flex;
    }

    .partners_solution .thm{
        width: 43.2vw;
    }

    .partners_solution .text_box{
        padding: 0 0 0 7.0vw;
        width: calc(100% - 43.2vw);
        box-sizing: border-box;
    }

    .partners_solution .ttl{
        padding: 0 0 .7vw 3.3vw;
    }

    .partners_solution .ttl .txt{
        font-size: 2.2vw;
    }

    .partners_solution .text{
        margin: 2.0vw 0 0;
        line-height: 3.8vw;
    }


    /* products
       ================================================================== */
    .products{
        margin: 0 0 0;
    }

    .products .inner{
        width: 90%;
    }

    .products .box1{
        padding: 4.0vw 0 7.0vw;
    }

    .products .box2{
        padding: 5.0vw 0 7.0vw;
    }

    .products .flex_box{
        display: flex;
    }

    .products .flex_box .left_box{
        padding: 1.0vw 0 0;
        width: 11.0vw;
        box-sizing: border-box;
    }

    .products .flex_box .center_box{
        padding: 0 0 0;
        width: 38.3vw;
        box-sizing: border-box;
    }

    .products .flex_box .right_box{
        padding: 0 0 0 6.7vw;
        width: calc(100% - 11.0vw - 38.3vw);
        box-sizing: border-box;
    }

    .products .number{
        margin: 0 0 0;
    }

    .products .number span{
        padding: 0 1.4vw 0 0;
        font-size: 4.4vw;
    }

    .products .number span:before{
        width: 3.3vw;
    }

    .products .title{
        padding: .5vw 2.0vw;
        font-size: 2.0vw;
        height: 5.0vw;
        box-sizing: border-box;
    }

    .products .box1 .title{
        width: 31.2vw;
    }

    /* box1 */
    .products .box1 .list{
        margin: 7.2vw 0 0;
        display: flex;
        justify-content: space-between;
    }

    .products .box1 .list > li{
        margin: 0 0 0;
        width: 40.7vw;
    }

    .products .box1 .list .bg_box{
        padding: 1px 9.5vw 1.0vw 4.2vw;
    }

    .products .box1 .list .bg_box .ttl{
        margin: -2.0vw 0 0;
        font-size: 2.4vw;
    }

    .products .box1 .list .bg_box .txt{
        margin: .6vw 0 0;
        font-size: 1.6vw;
        line-height: 2.3vw
    }

    .products .box1 .list .bg_box img{
        bottom: 0;
        right: -.7vw;
        width: 10.6vw;
    }

    .products .box1 .list .text_box{
        margin: 2.0vw 0 0;
    }

    .products .box1 .list .text_box p{
        padding: 0 1.5vw;
        font-size: 1.6vw;
        line-height: 2.8vw;
        box-sizing: border-box;
    }

    .products .box1 .list .text_box p:first-child{
        min-height: 8.4vw;
    }

    .products .box1 .list .text_box p + p{
        margin: 1.5vw 0 0;
        padding: 1.5vw 1.5vw 0;
    }

    .products .box1 .bottom_box{
        margin: 5.5vw 0 0;
        padding: 1.7vw 2.0vw 2.0vw;
        border-radius: 10.0vw;
    }

    .products .box1 .bottom_box p{
        font-size: 1.8vw;
        line-height: 3.0vw;
        text-align: center;
    }

    /* box2 */
    .products .box2 .list{
        margin: 0 0 0;
    }

    .products .box2 .list > li + li{
        margin: 9.0vw 0 0;
    }

    .products .box2 .list .txt{
        margin: 1.3vw 0 0;
        font-size: 1.6vw;
        line-height: 3.0vw;
    }

    .products .box2 .list .thm{
        margin: 0 0 0;
    }

    .products .box2 .list .thm img{
        aspect-ratio: 346 / 180;
    }


    /* process
       ================================================================== */
    .process{
        margin: 0 0 0;
    }

    .process .inner{
        width: 90%;
    }

    .process .title{
        height: 23.9vw;
        background-image: url("../images/partners/webp/process_bg.webp");
    }

    .process .title .inner:before{
        top: -23%;
        left: 2.0vw;
        width: 55.6vw;
        height: 11.3vw;
    }

    .process .title .txt{
        padding: 0 0 0 2.5vw;
        font-size: 2.8vw;
        line-height: 4.4vw;
    }

    .process .title .txt .siz_s{
        font-size: 2.4vw;
    }

    .process .ttl{
        margin: -2.2vw 0 0;
        text-align: center;
    }

    .process .ttl span{
        padding: 1.8vw 8.8vw 1.8vw 6.4vw;
        font-size: 2.2vw;
        display: inline-block;
    }

    .process .pc_flex{
        margin: 3.5vw 0 0;
        display: flex;
        flex-direction: row-reverse;
    }

    .process .pc_flex p{
        margin: 0 0 0;
        padding: 0 0 0 5.4vw;
        width: calc(100% - 42.3vw);
        box-sizing: border-box;
    }

    .process .pc_flex .thm{
        margin: 0 0 0;
        width: 42.3vw;
    }


    /* value
       ================================================================== */
    .value{
        margin: 0;
        padding: 0 0 8.0vw;
    }

    .value .title{
        margin: 0 5.0vw;
        padding: 1.0vw;
        font-size: 2.8vw;
    }

    .value .title .siz_l{
        font-size: 3.0vw;
    }

    .value .list{
        margin: 4.0vw 0 0;
        display: flex;
        justify-content: center;
    }

    .value .list > li{
        margin: 0 -.5vw;
        padding: 5.0vw 2.0vw 2.0vw;
        width: 32.0vw;
        height: 32.0vw;
        box-sizing: border-box;
    }

    .value .list .ttl{
        margin: 0 auto;
        padding: .5vw .5vw;
        font-size: 1.8vw;
        width: 84%;
    }

    .value .list ul{
        margin: 3.0vw 0 0 3.4vw;
    }

    .value .list .txt,
    .value .list ul > li{
        margin: 1.4vw 0 0;
        font-size: 1.6vw;
        line-height: 1.8vw;
    }

    .value .list .txt{
        margin: 3.1vw 0 0;
        line-height: 3.6vw;
    }

    .value .list ul > li{
        padding: 0 0 0 3.0vw;
    }

    .value .list ul > li:before{
        width: 1.7vw;
        height: 1.7vw;
        top: .3vw;
    }


    /* vision
       ================================================================== */
    .vision{
        margin: .4vw 0 0;
        padding: 4.0vw 0 0;
        border-top: 1px solid #ddd;
    }

    .vision .bg_color{
        padding: 4.8vw 0 4.0vw;
    }

    .vision .pc_flex{
        display: flex;
        align-items: center;
    }

    .vision .sp_flex{
        width: 41.8vw;
    }

    .vision .thm{
        width: 100%;
    }

    .vision .thm img{
        aspect-ratio: 418 / 276;
    }

    .vision .text_box{
        padding: 0 0 0 5.8vw;
        width: calc(100% - 41.8vw);
        box-sizing: border-box;
    }

    .vision .title{
        padding: 0 0 0;
        width: 100%;
        font-size: 2.8vw;
    }

    .vision .text{
        margin: 1.5vw 2.0vw 0 0;
        font-size: 1.6vw;
        line-height: 4.0vw;
    }


    /* company_section
       ================================================================== */
    .company_section{
        padding: 4.6vw 0 14.0vw;
    }

    .company_section .inner{
        width: 90%;
    }

    .company_section .title{
        padding: 0 3.2vw;
        font-size: 2.8vw;
    }

    .company_section .data{
        margin: 2.8vw 0 0;
        border-bottom: 1px solid #ddd;
    }

    .company_section .data th,
    .company_section .data td{
        padding: 2.9vw 0;
        font-size: 1.6vw;
        line-height: 3.4vw;
        display: table-cell;
        box-sizing: border-box;
        border-top: 1px solid #ddd;
    }

    .company_section .data th{
        padding: 0 0 0 4.0vw;
        width: 39.3vw;
        background: #fff;
    }

    .company_section .data td{
        padding-top: 2.9vw;
        padding-bottom: 2.9vw;
        width: calc(100% - 39.3vw);
    }


    /* banners_section
       ================================================================== */
    .banners_section{
        padding: 3.6vw 0 0;
    }


    /* contact_section
       ================================================================== */
    .contact_section{
        padding: .4vw 0 7.0vw;
    }

    .contact_section .bg_color{
        border-top: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
    }

    .contact_section .inner{
        width: 100%;
    }

    .contact_section .pc_flex{
        display: flex;
    }

    .contact_section .step_box{
        padding: 4.0vw 1.8vw 6.8vw;
        width: 14.0vw;
        box-sizing: border-box;
        border-left: 1px solid #ddd;
        border-right: 1px solid #ddd;
    }

    .contact_section .main_box{
        padding: 1px 0 6.8vw;
        width: calc(100% - 14.0vw);
        box-sizing: border-box;
    }


    /* contact
       ================================================================== */
    .contact{
    	padding: 5vw 5vw 16.5vw;
    }
        
    .contact .req{
        float: right;
    }

    .contact table{
        margin: 0 auto 0;
    }
    
    .contact th,
    .contact td{
        width: auto;
    	font-size: 15px;
    }
    
    .contact th{
    	padding: 0 0 0;
        box-sizing: border-box;
    }
    
    .contact .title_top th{
    	padding-top: 31px;
        vertical-align: top;
    }
    
    .contact td{
    	padding: 17px 0 18px;
    }
    
    .contact output,
    .contact input,
    .contact select,
    .contact textarea{
    	margin: 0;
    	font-size: 16px;
    	padding: 5px 15px;
    }
	
	.contact select{
		vertical-align: middle;
	}
    
    .contact textarea{
        height: 235px;
    }
    
    .zas_btn_area{
    	padding: 3.0vw 0 0;
    }
    
	.zas_btn_area button{
		width: 32.8vw;
        height: 6.0vw;
		font-size: 2.0vw;
	}
	
    .zas_btn_area button svg{
        right: 3.5vw;
        width: 2.2vw;
    }
	
	.zas_btn_area button,
    .zas_btn_area button path{
        transition: .3s;
    }
	
	.zas_btn_area button:hover{
		background: #fff;
        color: #20ADC3;
	}
	
	.zas_btn_area button:hover path{
        stroke: #20ADC3;
	}


    /* thanks
       ================================================================== */
    .thanks{
        padding: 6.0vw 8.0vw 0 0;
    }

    .thanks h3{
        font-size: 2.6vw;
    }

    .thanks p{
        margin: 4.0vw 0 0;
    	font-size: 1.6vw;
        line-height: 3.4vw;
    }
    
    .thanks .anime_btn{
    	margin: 8.5vw auto 6.5vw;
    }
 	

    /* news_list
       ================================================================== */
    .news_list{
        padding: 0 0 0;
    }

    .news_list .bg_gray{
        margin: 6.0vw 0 0;
        padding: 4.0vw 0 9.0vw;
    }

    .news_list .bg_gray .inner{
        width: 90%;
    }

    .news_list .categories{
        padding: 0 0 0;
        display: flex;
    }

    .news_list .categories .title{
        padding: .2vw 0 0;
        width: 11.6vw;
    }

    .news_list .categories .title span{
        padding: 0 2.8vw 0 0;
        font-size: 1.8vw;
        display: block;
    }

    .news_list .categories .category_links{
        padding: 0 0 0 2.3vw;
        width: calc(100% - 11.6vw);
        box-sizing: border-box;
    }

    /* category_links */
    .category_links ul,
    .category_links{
        gap: 2.5vw;
    }

    .category_links li a{
        padding: .6vw 1.5vw;
        font-size: 1.5vw;
        line-height: 100%;
        transition: .3s;
    }

    .category_links.black{
        gap: 1.2vw;
    }

    .category_links li a:hover{
        background: #2980B9;
        color: #fff;
    }

    .category_links.black li a{
        font-size: 1.3vw;
        border: 1px solid #000;
    }

    .category_links.black li a:hover{
        background: #fff;
        color: #000;
    }

    /* blog_list */
    .blog_list{
        gap: 2%;
    }

    .blog_list > li{
        margin: 5.8vw 0 .6vw;
        width: 32%;
    }

    .blog_list .thm{
        overflow: hidden;
    }

    .blog_list .thm img{
        aspect-ratio: 280 / 200;
        transition: .3s;
    }

    .blog_list a:hover .thm img{
        transform: scale(1.05);
    }

    .blog_list .text_box{
        padding: .9vw 0 0;
    }

    .blog_list .text_top{
        padding: 0 0 0;
        display: flex;
    }

    .blog_list .date{
        padding: .4vw 0px 0;
        font-size: 1.3vw;
        line-height: 100%;
        width: 8.0vw;
    }

    .blog_list .page_categories{
        width: calc(100% - 8.0vw);
        display: flex;
        justify-content: flex-end;
        gap: .4vw;
    }

    .blog_list .page_categories > span{
        padding: .5vw 1.0vw;
        font-size: 1.0vw;
        line-height: 100%;
    }

    .blog_list .ttl{
        margin: .7vw 0 0;
        font-size: 1.4vw;
        line-height: 2.4vw;
        -webkit-line-clamp: 2;
        transition: .3s;
    }

    .blog_list a:hover .ttl{
        color: #2980B9;
    }


	/* pgn
	   ================================================================== */
	.pgn{
		margin: 8.0vw 0 0;
		padding: 0;
	}

    .pgn nav > div > div > span > *{
    	padding: 1px 0 0;
    }
	
	.pgn nav > div > div > span > a:hover{
		color: #2980B9;
	}


    /* news_show_section
       ================================================================== */
    .news_show_section{
        padding: 4.5vw 0 0;
    }

    .news_show_section .show_flex{
        display: flex;
        justify-content: space-between;
    }

    /* show_main */
    .show_main{
        width: 63.0vw;
    }

    /* show_aside */
    .show_aside{
        padding: 0 0 0;
        width: 24.6vw;
        display: block;
    }

    /* news_show_bottom */
    .news_show_bottom{
        margin: 8.5vw 0 0;
    }


    /* detail_page
       ================================================================== */
    .detail_page{
    	margin: 0 0 0;
    }
    
    .detail_page .detail_box h1{
    	font-size: 24px;
    	margin: 0 0 10px;
    	padding: 0 0 10px;
    }
    
    .detail_page .show_top_flex{
    	margin: 2vw 0 0;
    }
    
    .detail_page .date{
        width: 9.0vw;
        font-size: 1.2vw;
    }
    
    .detail_page .detail_categories{
        margin: -.5vw 0 0;
        width: calc(100% - 9.0vw);
    }

    .detail_page .detail_categories > ul{
        margin: .5vw 0 0;
        width: calc(100% - 9.0vw);
        gap: 1.2vw;
    }
    
    .detail_page .detail_categories li a{
        padding: .6vw 1.5vw;
        font-size: 1.3vw;
        line-height: 100%;
        transition: .3s;
        border: 1px solid #000;
    }

    .detail_page .detail_categories li a:hover{
        background: #fff;
        color: #000;
    }
    
    .detail_page .photo{
    	margin: 2vw 0 0;
    }
    	
    .detail_page .detail_body{
    	margin: 3vw 0 0;
    }


	/* detail_btn_area
	   ================================================================== */
	.detail_btn_area{
		margin: 8.5vw 0 0;
		font-size: 0;
		text-align: center;
	}
	
    .detail_btn_area .detail_arrow_btn,
    .detail_btn_area .detail_arrow_btn.next,
    .detail_btn_area .detail_arrow_btn.prev{
    	width: 32%;
    }

    .detail_btn_area .detail_arrow_btn.back{
    	margin: 0 2%;
    }
    
	.detail_btn_area .detail_arrow_btn a,
	.detail_btn_area .detail_arrow_btn button{
		padding: 0;
		width: 100%;
        height: 4.6vw;
        line-height: 4.6vw;
		text-align: center;
		font-size: 1.4vw;
		letter-spacing: 0.10em;
		transition: .3s;
		cursor: pointer;
	}

    .detail_btn_area .detail_arrow_btn a svg,
    .detail_btn_area .detail_arrow_btn button svg{
        width: .7vw;
    }

    .detail_btn_area .detail_arrow_btn.prev a svg,
    .detail_btn_area .detail_arrow_btn.prev button svg{
        left: 2.0vw;
    }

    .detail_btn_area .detail_arrow_btn.next a svg,
    .detail_btn_area .detail_arrow_btn.next button svg{
        right: 2.0vw;
    }

	.detail_btn_area .detail_arrow_btn path{
		transition: .3s;
	}
	
	.detail_btn_area .detail_arrow_btn a:hover,
	.detail_btn_area .detail_arrow_btn button:hover{
		background: #2980B9;
		border-color: #2980B9;
        color: #fff;
	}

	.detail_btn_area .detail_arrow_btn a:hover path{
        fill: #fff;
	}
 	

    /* side_banner
       ================================================================== */
    .side_banner + .side_banner{
        margin: 20vw 0 0;
    }
 	
    .side_banner a{
        display: block;
        line-height: 0;
    }
 	

    /* aside_list_wrap
       ================================================================== */
    .aside_list_wrap{
        padding: 2.0vw 0 0;
    }

    .aside_list_wrap .aside_ttl{
        width: 100%;
        height: 4.2vw;
        font-size: 1.5vw;
        background: #2980B9;
        color: #fff;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .aside_list_wrap .aside_list{
        border: 1px solid #A8A8A8;
        border-top: none;
    }

    .aside_list_wrap .aside_list > li a{
        padding: 1.0vw;
        display: block;
    }

    .aside_list_wrap .aside_list > li:nth-child(n+2){
        border-top: 1px solid #A8A8A8;
    }

    .aside_list_wrap .aside_list > li:nth-child(n+2) a{
        display: flex;
        align-items: center;
    }

    .aside_list_wrap .aside_list > li a span{
        display: block;
    }

    .aside_list_wrap .thm img{
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        aspect-ratio: 1 / 1;
    }

    .aside_list_wrap .ttl{
        padding: .8vw 0 0;
        font-size: 1.1vw;
        line-height: 1.5vw;
        box-sizing: border-box;
        overflow: hidden;
        display: -webkit-box !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    /* 2個目以降 */
    .aside_list_wrap .aside_list > li:nth-child(n+2) a{
        display: flex;
        align-items: center;
    }

    .aside_list_wrap .aside_list > li:nth-child(n+2) .thm{
        width: 35%;
    }

    .aside_list_wrap .aside_list > li:nth-child(n+2) .ttl{
        padding: 0 0 0 .8vw;
        width: calc(100% - 35%);
    }

    
}
@media screen and (min-width : 1040px){    


    /* banners_list
       ================================================================== */
    .banners_list{
        width: 900px;
        display: flex;
        flex-wrap: wrap;
        gap: 4.22%;
    }

    .banners_list > li{
        margin: 0 0 20px;
        width: 47.89%;
    }


    /* under_title_section
       ================================================================== */
    .under_title_section .title{
        font-size: 28px;
        height: 95px;
    }

    /* pankz */
    .pankz{
        margin: 10px auto 0;
        padding: 0 50px;
        box-sizing: border-box;
    }

    .pankz > li{
        margin: 0 27px 15px 0;
    }

    .pankz > li::before{
        width: 7px;
        height: 21px;
        left: calc(100% + 10px);
    }

    .pankz > li > span,
    .pankz > li a{
        font-size: 14px;
    }


    /* movie_kv
       ================================================================== */
    .movie_kv{
        height: 68vh;
        min-height: 683px;
    }

    .movie_kv.index_kv{
        padding-bottom: 140px;
        height: 100vh;
    }

    .movie_kv .inbox{
        padding: 0 0 0;
    }

    .movie_kv .page_title{
        margin: 0 auto 10px;
    }

    .movie_kv .page_title span{
        padding: 7px 60px;
        min-width: 300px;
        font-size: 22px;
    }

    .movie_kv .catch{
        font-size: 36px;
        line-height: 52px;
    }

    .movie_kv.index_kv .catch{
        font-size: 48px;
    }

    .movie_kv .inbox p{
        margin: 20px 0 0;
        font-size: 24px;
        line-height: 35px;
    }

    .movie_kv .eng{
        font-size: 12px;
        line-height: 20px;
        left: 45px;
        bottom: 15px;
    }
    

    /* index_partners
       ================================================================== */
    .index_partners{
        padding: 30px 0 130px;
    }

    .index_partners:before{
        height: 120px;
    }

    .index_partners .title{
        margin: 80px auto 0;
        width: 100px;
    }

    .index_partners .partner_name{
        margin: 15px auto 40px;
        font-size: 32px;
        line-height: 44px;
    }

    .index_partners .partner_name .siz_s{
        font-size: 28px;
    }


    /* partners_projects
       ================================================================== */
    .partners_projects{
        padding: 50px 0;
    }

    .partners_projects .title{
        width: 237px;
    }

    .partners_projects .partner_name{
        margin: 15px auto 40px;
        font-size: 32px;
        line-height: 44px;
    }

    .partners_projects .note{
        margin: -3px 0 0;
        font-size: 13px;
        text-align: center;
    }


    /* solution
       ================================================================== */
    .solution{
        margin: 0 0 0;
    }

    .solution:after{
        width: 100vw;
        bottom: 0;
        right: 0;
    }

    .solution .inner{
        display: flex;
    }

    .solution .left{
        padding: 76px 0;
        width: 36.5%;
        box-sizing: border-box;
    }

    .solution .site_logo{
        width: 200px;
    }

    .solution .right{
        padding: 70px 65px 163px 166px;
        width: calc(100% - 36.5%);
        box-sizing: border-box;
    }

    .solution .right:before{
        left: 0;
    }

    .solution .title{
        margin: 0 0 0 -21px;
        width: 363px;
    }

    .solution .list{
        margin: 85px 0 0;
    }

    .solution .list > li{
        padding: 10px 0 0;
        position: relative;
    }

    .solution .list > li + li{
        margin: 120px 0 0;
    }

    .solution .list .photo{
        width: 519px;
        position: absolute;
        top: 0;
        left: -583px;
    }

    .solution .list .photo img{
        aspect-ratio: 519 / 285;
    }

    .solution .list .text_box{
        margin: 0 0 0;
        min-height: 285px;
    }

    .solution .list .ttl .number{
        width: 59px;
    }

    .solution .list .ttl .txt{
        margin: 24px 0 0;
        font-size: 24px;
        line-height: 35px;
    }

    .solution .list .text{
        margin: 20px 0 0;
        line-height: 37px;
    }


    /* eng_title
       ================================================================== */
    .eng_title .siz_34{
        font-size: 34px;
    }

    .eng_title .siz_32{
        font-size: 32px;
    }

    .eng_title .siz_14{
        font-size: 14px;
    }


    /* debris
       ================================================================== */
    .debris{
        margin: 0 0 0;
        padding: 85px 0 120px;
    }

    .debris .inner{
        padding-left: 70px;
    }

    .debris .title_jpn{
        margin: 14px 0 0;
        font-size: 28px;
    }

    .debris .title_jpn .siz_s{
        font-size: 24px;
    }

    .debris .text_box{
        margin: 60px 0 0;
        position: relative;
    }

    .debris .text_box .ttl{
        width: 401px;
    }

    .debris .text_box .photo{
        margin: 0 0 0;
        position: absolute;
        top: 26px;
        left: 514px;
        width: 619px;
    }

    .debris .text_box .text{
        margin: 13px 0 0;
        width: 480px;
    }

    .debris .text_box .source{
        margin: 13px 0 0;
        font-size: 12px;
        line-height: 16px;
    }

    .debris .text_box .source .pc_indent{
        margin-left: 38px;
    }


    /* approach_band
       ================================================================== */
    .approach_band{
        display: flex;
    }

    .approach_band > div{
        height: 300px;
        box-sizing: border-box;
    }

    .approach_band .photo{
        margin: 0;
        width: 45%;
    }

    .approach_band .photo img{
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .approach_band .text_box{
        padding: 52px 0 0 64px;
        width: 55%;
    }

    .approach_band .title_jpn{
        margin: 20px 0 0;
        font-size: 30px;
        line-height: 44px;
    }


    /* approach_section
       ================================================================== */
    .approach_section{
        padding: 78px 0 0;
    }

    .approach_section .approach_kv{
        margin: 0 0 0;
    }

    .approach_section .approach_kv .title{
        width: 391px;
    }

    .approach_section .approach_kv .photo{
        margin: -25px -9px 0;
    }

    .approach_section .approach_kv .text{
        margin: 5px 0 0;
        font-size: 18px;
        line-height: 33px;
    }

    .approach_section .arrow{
        margin: 73px auto 38px;
        width: 122px;
        position: relative;
        z-index: 1;
    }

    .approach_section .approach_box + .arrow{
        margin: -15px auto 0;
    }

    .approach_section .approach_box{
        margin: 24px 0 0;
        padding: 30px 300px 80px 50px;
        width: 800px;
        position: relative;
        box-sizing: border-box;
        background: none;
    }
    
    .approach_section .approach_box:before{
        content: "";
        background: linear-gradient(125deg,rgba(250,250,250,.52) 0%,rgba(221,240,250,.52) 40%,rgba(242,242,242,.52) 70%,rgba(250,250,250,.52) 100%);
        width: 100vw;
        height: 100%;
        position: absolute;
        top: 0;
        right: 0;
        border-radius: 0 34px 27px 0;
    }

    .approach_section .approach_box > *{
        position: relative;
        z-index: 1;
    }

    .approach_section .approach_box .number > span{
        padding: 0 13px 0 0;
        font-size: 44px;
    }

    .approach_section .approach_box .number > span:before{
        width: 33px;
    }

    .approach_section .approach_box .ttl{
        margin: 25px 0 0;
        font-size: 24px;
        line-height: 30px;
    }

    .approach_section .approach_box .text{
        margin: 30px 0 0;
        font-size: 16px;
        line-height: 34px;
    }

    .approach_section .approach_box .text .pueple{
        margin-right: 10px;
        width: 15px;
    }

    .approach_section .approach_box.no06 .text{
        line-height: 45px;
    }

    .approach_section .approach_box .photo{
        margin: 0;
        position: absolute;
        top: 140px;
        left: 533px;
        width: 527px;
    }

    .approach_section .approach_box.no06 .photo{
        top: 15px;
        left: 533px;
        width: 400px;
    }


    /* circulation
       ================================================================== */
    .circulation{
        padding: 80px 0 0;
    }

    .circulation .inner{
        position: relative;
    }

    .circulation .eng_title .image{
        margin: 0 auto 7px;
        width: 475px;
    }

    .circulation .top_text{
        margin: 35px 0 0;
        font-size: 18px;
        line-height: 40px;
    }

    .circulation .list{
        margin: 55px auto 0;
        width: 90%;
        display: flex;
        flex-wrap: wrap;
        gap: 2%;
        position: relative;
        z-index: 1;
    }

    .circulation .list > li{
        margin: 0 0 0;
        width: 32%;
    }

    .circulation .list .ttl{
        margin: 0 auto -30px;
        width: 170px;
    }

    .circulation .list .photo img{
        aspect-ratio: 287 / 172;
    }

    .circulation .list p{
        padding: 20px 12px 10px;
        min-height: 212px;
        box-sizing: border-box;
    }

    .circulation .bg{
        display: block;
        position: absolute;
        width: 644px;
        left: -228px;
        top: 338px;
    }


    /* index_case
       ================================================================== */
    .index_case{
        padding: 100px 0 70px;
    }

    .index_case .title_jpn{
        margin: 20px 0 0;
        font-size: 28px;
    }

    .index_case .top_text{
        margin: 20px 0 0;
        font-size: 18px;
        line-height: 40px;
    }

    .index_case .list{
        margin: 30px auto 0;
        width: 90%;
        display: flex;
        flex-wrap: wrap;
        gap: 3.6%;
    }

    .index_case .list > li{
        margin: 25px 0 0;
        padding: 28px 14px 40px;
        width: 48.2%;
    }

    .index_case .list .text_box{
        padding: 30px 12px 0;
    }

    .index_case .list .ttl{
        font-size: 18px;
        letter-spacing: 0;
    }

    .index_case .list .txt{
        margin: 20px 0 0;
        font-size: 16px;
        line-height: 30px;
    }

    .index_case .list .view_btn{
        margin: 17px 10px 0 0;
    }

    .index_case .bottom_photo{
        margin: 106px auto 0;
        width: 95%;
        max-width: 1143px;
        display: block;
    }


    /* project_flow
       ================================================================== */
    .project_flow{
        padding: 0 0 0;
    }

    .partners_page .project_flow{
        margin-top: 120px;
    }

    .project_flow .title{
        padding: 23px 0;
        background-image: url("../images/project_flow/webp/title_bg.webp");
        background-size: 100% auto;
    }

    .project_flow .title .inner{
        padding-left: 70px;
        display: flex;
        align-items: center;
    }

    .project_flow .title .f30{
        font-size: 30px;
        letter-spacing: 0.1em;
    }

    .project_flow .title .f28{
        margin-left: 60px;
        font-size: 28px;
    }

    .project_flow .list{
        margin: 40px auto 0;
        width: 90%;
        display: flex;
        justify-content: space-between;
    }

    .project_flow .list > li{
        width: auto;
        display: block;
    }

    .project_flow .list > li + li{
        padding: 0 0 0;
    }

    .project_flow .list .number{
        padding: 3px;
        width: 43px;
        height: 43px;
    }

    .project_flow .list .number > span{
        padding: 0 0 4px 2px;
        font-size: 28px;
    }

    .project_flow .list .line:before{
        content: "";
        background: linear-gradient(to right,#2495D0,#2495D0);
        width: 100vw;
        height: 2px;
        top: 22px;
        left: 0;
    }

    .project_flow .list .box{
        padding: 7px 0 0;
        width: 100%;
    }

    .project_flow .list .ttl{
        font-size: 18px;
    }

    .project_flow .list .thm{
        margin: 25px auto 0;
        width: 180px;
    }

    .project_flow .bottom_text{
        margin: 35px auto 0;
        font-size: 18px;
        line-height: 34px;
    }


    /* btn_links_section
       ================================================================== */
    .btn_links_section{
        padding: 70px 0 100px;
    }

    .btn_links_section .list{
        margin: 0 auto;
        width: 90%;
        display: flex;
        flex-wrap: wrap;
        gap: 42px;
    }

    .btn_links_section .list > li{
        margin: 0 0 0;
        width: 429px;
    }

    .btn_links_section .list li p{
        margin: 3px 0 0;
        font-size: 15px;
    }

    .btn_circle_arrow{
        margin: 0 auto;
        width: 380px;
    }

    .btn_circle_arrow a span{
        font-size: 26px;
        width: calc(100% - 72px);
    }

    .btn_circle_arrow a img{
        width: 72px;
    }


    /* message
       ================================================================== */
    .message{
        margin: 0 0 0;
        padding: 60px 0;
    }

    .message .bg_box{
        padding: 56px 50px 35px 50px;
    }

    .message .title{
        width: 22px;
        top: 32px;
        left: -13px;
    }

    .message .text_box{
        display: flex;
    }

    .message .text_box .left{
        padding: 0;
        width: 450px;
        box-sizing: border-box;
    }

    .message .text_box .ttl{
        padding: 0 0 16px;
        font-size: 28px;
        line-height: 40px;
    }

    .message .text_box .ttl:before{
        width: 100%;
    }

    .message .text_box p{
        padding: 27px 0 0;
        font-size: 16px;
        line-height: 38px;
    }

    .message .text_box .right{
        padding: 0 0 0 50px;
        width: calc(100% - 450px);
        box-sizing: border-box;
    }

    .message .text_box .photo{
        padding: 0 0 0;
    }

    .message .text_box .name{
        padding: 15px 24px 0 0;
    }

    .message .text_box .name span{
        font-size: 16px;
    }

    .message .text_box .name span:nth-child(1){
        padding-right: 30px;
    }


    /* links_section
       ================================================================== */
    .links_section{
        padding: 100px 0 38px;
    }

    .links_section .title{
        width: 233px;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .links_section .title:before{
        width: 50%;
    }

    .links_section .title h2{
        font-size: 34px;
        line-height: 45px;
    }

    .links_section .title h2 span{
        line-height: 35px;
    }

    .links_section .title h2 .f30{
        font-size: 30px;
    }

    .links_section .title h2 .f22{
        font-size: 22px;
    }

    .links_section .list_box{
        width: calc(100% - 233px);
    }

    .links_slider{
        width: 740px;
    }
 
    .links_slider .text_box{
        padding: 10px 0 15px;
    }

    .links_slider .ttl{
        min-height: 48px;
        font-size: 18px;
        line-height: 24px;
    }

    .links_slider .text{
        margin: 10px 0 0;
        font-size: 16px;
        line-height: 24px;
        -webkit-line-clamp: 2;
    }


    /* volunteer_add_line
       ================================================================== */
    .volunteer_add_line{
        padding: 45px 0;
    }

    .volunteer_add_line .title{
        text-align: left;
    }

    .volunteer_add_line .title .yellow_line{
        font-size: 28px;
    }

    .volunteer_add_line .text{
        margin: 5px 0 0;
        font-size: 18px;
        text-align: left;
    }

    .volunteer_add_line .line_banner{
        margin: 15px auto 0;
    }


    /* overlap_title
       ================================================================== */
    .overlap_title .overlap_top{
        font-size: 28px;
        line-height: 43px;
    }

    .overlap_title .overlap_top .f31{
        font-size: 31px;
    }

    .overlap_title .overlap_top .f24{
        font-size: 24px;
    }

    .overlap_title .overlap_bottom{
        margin: -22px auto 0;
        font-size: 69px;
    }

    .overlap_title .overlap_bottom.f75{
        font-size: 75px;
    }


    /* future
       ================================================================== */
    .future{
        padding: 60px 0 60px;
    }

    .future .top_box{
        padding: 0 25px;
        display: flex;
    }

    .future .top_box .site_logo{
        margin: 0;
        width: 138px;
    }

    .future .top_box .right_box{
        padding: 0 0 0 30px;
        width: calc(100% - 138px);
        box-sizing: border-box;
    }

    .future .top_box .title{
        font-size: 28px;
    }

    .future .top_box p{
        margin: 13px 0 0;
        line-height: 28px;
    }

    .future .list{
        margin: 0 25px 0;
        display: flex;
        flex-wrap: wrap;
        gap: 2%;
    }

    .future .list > li{
        margin: 80px 0 0;
        padding: 1px 25px 25px;
        width: 32%;
        box-sizing: border-box;
    }

    .future .list .thm{
        margin: -34px auto 0;
        width: 226px;
    }

    .future .list .ttl{
        margin: 3px 0 0;
    }

    .future .list .ttl .number{
        font-size: 41px;
    }

    .future .list .ttl .txt{
        margin: 10px 0 0;
        padding: 0 0 0 32px;
        font-size: 16px;
    }

    .future .list .ttl .txt:before{
        width: 12px;
        left: 7px;
    }

    .future .list p{
        margin: 8px 0 0;
        font-size: 16px;
        line-height: 28px;
    }

    .volunteer_page .future .volunteer_only{
        margin: 23px 25px 0;
        padding: 16px 10px 16px 38px;
    }

    .volunteer_page .future .volunteer_only p{
        font-size: 15px;
        line-height: 28px;
    }

    /* synergy_section */
    .future .synergy_top_box{
        padding: 0 0 0;
    }

    .future .synergy_top_box .site_logo{
        width: 126px;
    }

    .future .synergy_top_box .overlap_title{
        margin: 25px 0 0;
    }

    .future.synergy_section .list{
        margin-top: -40px;
    }

    .future.synergy_section .list .ttl .txt{
        margin-right: -20px;
        font-size: 15px;
        letter-spacing: 0;
        line-height: 24px;
    }


    /* check_section
       ================================================================== */
    .check_section{
        padding: 0 0 0;
    }

    .check_section .list{
        padding-right: 25px;
        display: flex;
    }

    .check_section .list > li{
        padding: 23px 0 40px;
        width: calc(50% + 40px);
        box-sizing: border-box;
    }

    .check_section .list > li:nth-child(2){
        width: calc(50% - 40px);
        border-left: 1px solid #E6EEF4;
    }

    .check_section .list > li:nth-child(2):before{
        left: 0;
    }

    .check_section .list > li:nth-child(2):after{
        content: "";
        background: #E6EEF4;
        clip-path: polygon(100% 0, 0% 100%, 100% 100%);
        width: 80px;
        height: 100%;
        position: absolute;
        top: 0;
        right: 100%;
    }

    .check_section .list .inbox{
        margin: auto;
        width: 396px;
    }

    .check_section .list .ttl{
        padding: 0 0 7px 24px;
    }

    .check_section .list .ttl .check{
        margin: 5px 0 0;
        padding: 0 14px 2px;
        font-size: 14px;
    }

    .check_section .list .ttl .txt{
        padding: 0 0 0 14px;
        font-size: 24px;
    }

    .check_section .list .text{
        margin: 25px 0 0;
        line-height: 38px;
    }


    /* get_involved
       ================================================================== */
    .get_involved{
        padding: 60px 0 0;
    }

    .get_involved .inner{
        padding: 0 70px;
    }

    .get_involved .top_box{
        margin: 35px 0 0;
        display: flex;
    }

    .get_involved .top_box .left{
        padding: 0 29px 0 0;
        width: 484px;
        box-sizing: border-box;
    }

    .get_involved .top_box .left p{
        font-size: 18px;
        line-height: 32px;
    }

    .get_involved .top_box .left .ttl{
        margin: 20px 0 0;
        padding: 3px 20px;
        font-size: 18px;
    }

    .get_involved .top_box .right{
        padding: 0 0 0;
        width: calc(100% - 484px);
    }

    /* step_flow */
    .step_flow{
        margin: 40px 0 0;
        padding: 17px 30px 30px;
        border-radius: 22px;
    }

    .step_flow > li{
        display: flex;
    }

    .step_flow > li + li{
        margin: 10px 0 0;
        padding: 10px 0 0;
        border-top: 1px solid #B7D3E8;
    }

    .step_flow .arrow{
        width: 36px;
        clip-path: polygon(0 0, 100% 0%, 100% 95%, 50% 100%, 0 95%);
    }

    .step_flow .arrow .arrow_ttl{
        font-size: 15px;
        letter-spacing: .8em;
    }

    .step_flow .inlist{
        padding: 15px 0 0 23px;
        width: calc(100% - 36px);
    }

    .step_flow .inlist > li{
        display: flex;
    }

    .step_flow .inlist > li + li{
        margin: 30px 0 0;
    }

    .step_flow .number_txt .step{
        font-size: 13px;
    }

    .step_flow .number_txt .no{
        margin-top: -5px;
        font-size: 44px;
    }

    .step_flow .number_txt .no:before{
        width: 20px;
        top: 60%;
        left: calc(100% + 17px);
    }

    .step_flow .right_box.pc{
        padding: 24px 0 13px 60px;
        display: block;
    }

    .step_flow .title{
        margin: 0 0 0;
    }

    .step_flow .title > span{
        padding: 7px 20px;
        font-size: 18px;
    }

    .step_flow .right_box .text_box{
        display: flex;
    }

    .step_flow p{
        margin: 15px 0 0 20px;
        line-height: 28px;
    }

    .step_flow .line_btn{
        margin: 0 0 0 30px;
        width: 252px;
    }


    /* trajectory
       ================================================================== */
    .trajectory{
        padding: 44px 0 48px;
    }

    .trajectory .title > span{
        padding: 0 25px 17px;
        font-size: 28px;
        display: inline-block;
    }

    .trajectory .list{
        margin: 44px auto 0;
        display: flex;
        justify-content: center;
    }

    .trajectory .list > li{
        padding: 10px 0 17px;
        width: 32%;
    }

    .trajectory .list > li + li{
        margin: 0 0 0;
        border-left: 1px solid #3FB2EF;
    }

    .trajectory .list .icon{
        width: 125px;
    }

    .trajectory .list .ttl{
        margin: 12px 0 0;
    }

    .trajectory .list .ttl > span{
        padding: 6px 15px;
        font-size: 18px;
        min-width: 127px;
    }

    .trajectory .list p{
        margin: 12px auto 0;
    }

    .trajectory .list .image{
        width: 197px;
    }

    .trajectory .list .txt{
        font-size: 18px;
        line-height: 30px;
    }


    /* ocean_taro
       ================================================================== */
    .ocean_taro{
        padding: 60px 0 0;
    }

    .ocean_taro .inner{
        display: flex;
        justify-content: flex-end;
        flex-direction: row-reverse;
    }

    .ocean_taro .text_box{
        padding: 0 0 0 36px;
        width: 576px;
        box-sizing: border-box;
    }

    .ocean_taro .text_box .title{
        width: 351px;
    }

    .ocean_taro .text_box .name{
        margin: 12px 0 0;
        font-size: 20px;
    }

    .ocean_taro .text_box .text{
        margin: 20px 0 0;
        line-height: 34px;
    }

    .ocean_taro .text_box .bg_box{
        margin: 35px auto 0;
        padding: 12px 18px 27px;
    }

    .ocean_taro .text_box .ttl{
        font-size: 20px;
    }

    .ocean_taro .text_box .txt{
        margin: 11px 0 0;
        line-height: 31px;
    }

    .ocean_taro .photo_box{
        padding: 25px 0 0;
        width: 374px;
        box-sizing: border-box;
    }

    .ocean_taro .photo_box .source{
        margin: 7px 0 0;
        font-size: 18px;
        text-align: center;
    }


    /* partners_solution
       ================================================================== */
    .partners_solution{
        margin: 0 0 0;
        padding: 65px 0 85px;
    }

    .partners_solution .pc_flex{
        margin: 0 75px 0 25px;
        display: flex;
    }

    .partners_solution .thm{
        width: 432px;
    }

    .partners_solution .text_box{
        padding: 0 0 0 70px;
        width: calc(100% - 432px);
        box-sizing: border-box;
    }

    .partners_solution .ttl{
        padding: 0 0 7px 33px;
    }

    .partners_solution .ttl .txt{
        font-size: 22px;
    }

    .partners_solution .text{
        margin: 20px 0 0;
        line-height: 38px;
    }


    /* products
       ================================================================== */
    .products{
        margin: 0 0 0;
    }

    .products .inner{
        width: 940px;
    }

    .products .box1{
        padding: 40px 0 70px;
    }

    .products .box2{
        padding: 50px 0 70px;
    }

    .products .flex_box{
        display: flex;
    }

    .products .flex_box .left_box{
        padding: 10px 0 0;
        width: 110px;
        box-sizing: border-box;
    }

    .products .flex_box .center_box{
        padding: 0 0 0;
        width: 383px;
        box-sizing: border-box;
    }

    .products .flex_box .right_box{
        padding: 0 0 0 67px;
        width: calc(100% - 110px - 383px);
        box-sizing: border-box;
    }

    .products .number{
        margin: 0 0 0;
    }

    .products .number span{
        padding: 0 14px 0 0;
        font-size: 44px;
    }

    .products .number span:before{
        width: 33px;
    }

    .products .title{
        padding: 5px 20px;
        font-size: 20px;
        height: 50px;
        box-sizing: border-box;
    }

    .products .box1 .title{
        width: 312px;
    }

    /* box1 */
    .products .box1 .list{
        margin: 72px 0 0;
        display: flex;
        justify-content: space-between;
    }

    .products .box1 .list > li{
        margin: 0 0 0;
        width: 407px;
    }

    .products .box1 .list .bg_box{
        padding: 1px 95px 10px 42px;
    }

    .products .box1 .list .bg_box .ttl{
        margin: -20px 0 0;
        font-size: 24px;
    }

    .products .box1 .list .bg_box .txt{
        margin: 6px 0 0;
        font-size: 16px;
        line-height: 23px
    }

    .products .box1 .list .bg_box img{
        bottom: 0;
        right: -7px;
        width: 106px;
    }

    .products .box1 .list .text_box{
        margin: 20px 0 0;
    }

    .products .box1 .list .text_box p{
        padding: 0 15px;
        font-size: 16px;
        line-height: 28px;
        box-sizing: border-box;
    }

    .products .box1 .list .text_box p:first-child{
        min-height: 84px;
    }

    .products .box1 .list .text_box p + p{
        margin: 15px 0 0;
        padding: 15px 15px 0;
    }

    .products .box1 .bottom_box{
        margin: 55px 0 0;
        padding: 17px 20px 20px;
        border-radius: 100px;
    }

    .products .box1 .bottom_box p{
        font-size: 18px;
        line-height: 30px;
        text-align: center;
    }

    /* box2 */
    .products .box2 .list{
        margin: 0 0 0;
    }

    .products .box2 .list > li + li{
        margin: 90px 0 0;
    }

    .products .box2 .list .txt{
        margin: 13px 0 0;
        font-size: 16px;
        line-height: 30px;
    }

    .products .box2 .list .thm{
        margin: 0 0 0;
    }

    .products .box2 .list .thm img{
        aspect-ratio: 346 / 180;
    }


    /* process
       ================================================================== */
    .process{
        margin: 0 0 0;
    }

    .process .inner{
        width: 940px;
    }

    .process .title{
        height: 239px;
        background-image: url("../images/partners/webp/process_bg.webp");
    }

    .process .title .inner:before{
        top: -23%;
        left: 20px;
        width: 556px;
        height: 113px;
    }

    .process .title .txt{
        padding: 0 0 0 25px;
        font-size: 28px;
        line-height: 44px;
    }

    .process .title .txt .siz_s{
        font-size: 24px;
    }

    .process .ttl{
        margin: -22px 0 0;
        text-align: center;
    }

    .process .ttl span{
        padding: 18px 88px 18px 64px;
        font-size: 22px;
        display: inline-block;
    }

    .process .pc_flex{
        margin: 35px 0 0;
        display: flex;
        flex-direction: row-reverse;
    }

    .process .pc_flex p{
        margin: 0 0 0;
        padding: 0 0 0 54px;
        width: calc(100% - 423px);
        box-sizing: border-box;
    }

    .process .pc_flex .thm{
        margin: 0 0 0;
        width: 423px;
    }


    /* value
       ================================================================== */
    .value{
        padding: 0 0 80px;
    }

    .value .title{
        margin: 0 50px;
        padding: 10px;
        font-size: 28px;
    }

    .value .title .siz_l{
        font-size: 30px;
    }

    .value .list{
        margin: 40px 0 0;
        display: flex;
        justify-content: center;
    }

    .value .list > li{
        margin: 0 -5px;
        padding: 50px 20px 20px;
        width: 320px;
        height: 320px;
        box-sizing: border-box;
    }

    .value .list .ttl{
        margin: 0 auto;
        padding: 5px 5px;
        font-size: 18px;
        width: 84%;
    }

    .value .list ul{
        margin: 30px 0 0 34px;
    }

    .value .list .txt,
    .value .list ul > li{
        margin: 14px 0 0;
        font-size: 16px;
        line-height: 18px;
    }

    .value .list .txt{
        margin: 31px 0 0;
        line-height: 36px;
    }

    .value .list ul > li{
        padding: 0 0 0 30px;
    }

    .value .list ul > li:before{
        width: 17px;
        height: 17px;
        top: 3px;
    }


    /* vision
       ================================================================== */
    .vision{
        margin: 4px 0 0;
        padding: 40px 0 0;
        border-top: 1px solid #ddd;
    }

    .vision .bg_color{
        padding: 48px 0 40px;
    }

    .vision .pc_flex{
        display: flex;
        align-items: center;
    }

    .vision .sp_flex{
        width: 418px;
    }

    .vision .thm{
        width: 100%;
    }

    .vision .thm img{
        aspect-ratio: 418 / 276;
    }

    .vision .text_box{
        padding: 0 0 0 58px;
        width: calc(100% - 418px);
        box-sizing: border-box;
    }

    .vision .title{
        padding: 0 0 0;
        width: 100%;
        font-size: 28px;
    }

    .vision .text{
        margin: 15px 50px 0 0;
        font-size: 16px;
        line-height: 40px;
    }


    /* company_section
       ================================================================== */
    .company_section{
        padding: 46px 0 140px;
    }

    .company_section .inner{
        width: 940px;
    }

    .company_section .title{
        padding: 0 32px;
        font-size: 28px;
    }

    .company_section .data{
        margin: 28px 0 0;
        border-bottom: 1px solid #ddd;
    }

    .company_section .data th,
    .company_section .data td{
        padding: 29px 0;
        font-size: 16px;
        line-height: 34px;
        display: table-cell;
        box-sizing: border-box;
        border-top: 1px solid #ddd;
    }

    .company_section .data th{
        padding: 0 0 0 40px;
        width: 393px;
        background: #fff;
    }

    .company_section .data td{
        padding-top: 29px;
        padding-bottom: 29px;
        width: calc(100% - 393px);
    }


    /* banners_section
       ================================================================== */
    .banners_section{
        padding: 36px 0 0;
    }


    /* contact_section
       ================================================================== */
    .contact_section{
        padding: 4px 0 70px;
    }

    .contact_section .bg_color{
        border-top: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
    }

    .contact_section .inner{
        width: 940px;
    }

    .contact_section .pc_flex{
        display: flex;
    }

    .contact_section .step_box{
        padding: 40px 28px 68px;
        width: 140px;
        box-sizing: border-box;
        border-left: 1px solid #ddd;
        border-right: 1px solid #ddd;
    }

    .contact_section .main_box{
        padding: 1px 0 68px;
        width: calc(100% - 140px);
        box-sizing: border-box;
    }

    
    /* contact
       ================================================================== */
    .contact{
    	padding: 0 0 165px
    }
    
    .contact .req{
        float: right;
    }

    .contact table{
        margin: 70px 0 0;
    }
    
    .contact table td,
    .contact table th{
        padding: 0 0 40px;
    	font-size: 16px;
        display: table-cell;
        width: auto;
        box-sizing: border-box;
    }
    
    .contact table th{
    	padding-left: 40px;
    	padding-right: 24px;
        width: 250px;
    }
    
    .contact table .ttl_top th{
        padding-top: 10px;
    	vertical-align: top;
    }
    
    .contact table td{
        width: calc(100% - 250px);
    }
    
    .contact output,
    .contact input,
    .contact select,
    .contact textarea{
    	font-size: 16px;
    	padding: 10px 30px;
        width: 100%;
    }
    
    .contact textarea{
        height: 235px;
    }
    
    .zas_btn_area{
    	padding: 30px 0 0;
    }
    
	.zas_btn_area button{
		width: 328px;
        height: 60px;
		font-size: 20px;
	}
	
    .zas_btn_area button svg{
        right: 35px;
        width: 22px;
    }


    /* thanks
       ================================================================== */
    .thanks{
        padding: 60px 140px 0 0;
    }

    .thanks h3{
        font-size: 26px;
    }

    .thanks p{
        margin: 40px 0 0;
    	font-size: 16px;
        line-height: 34px;
    }
    
    .thanks .anime_btn{
    	margin: 85px auto 65px;
    }
 	

    /* news_list
       ================================================================== */
    .news_list{
        padding: 0 0 0;
    }

    .news_list .bg_gray{
        margin: 60px 0 0;
        padding: 40px 0 90px;
    }

    .news_list .bg_gray .inner{
        width: 940px;
    }

    .news_list .categories{
        padding: 0 0 0;
        display: flex;
    }

    .news_list .categories .title{
        padding: 2px 0 0;
        width: 116px;
    }

    .news_list .categories .title span{
        padding: 0 28px 0 0;
        font-size: 18px;
        display: block;
    }

    .news_list .categories .category_links{
        padding: 0 0 0 23px;
        width: calc(100% - 116px);
        box-sizing: border-box;
    }

    /* category_links */
    .category_links ul,
    .category_links{
        gap: 25px;
    }

    .category_links li a{
        padding: 6px 15px;
        font-size: 15px;
        line-height: 100%;
    }

    .category_links.black{
        gap: 12px;
    }

    .category_links.black li a{
        font-size: 13px;
    }

    /* blog_list */
    .blog_list{
        gap: 2%;
    }

    .blog_list > li{
        margin: 58px 0 6px;
        width: 32%;
    }

    .blog_list .thm img{
        aspect-ratio: 280 / 200;
    }

    .blog_list .text_box{
        padding: 9px 0 0;
    }

    .blog_list .text_top{
        padding: 0 0 0;
        display: flex;
    }

    .blog_list .date{
        padding: 4px 0px 0;
        font-size: 13px;
        width: 80px;
    }

    .blog_list .page_categories{
        width: calc(100% - 80px);
        display: flex;
        justify-content: flex-end;
        gap: 4px;
    }

    .blog_list .page_categories > span{
        padding: 5px 10px;
        font-size: 10px;
        line-height: 100%;
    }

    .blog_list .ttl{
        margin: 7px 0 0;
        font-size: 14px;
        line-height: 24px;
        -webkit-line-clamp: 2;
    }


	/* pgn
	   ================================================================== */
	.pgn{
		margin: 70px 0 0;
		padding: 0;
	}

    .pgn nav > div > div > span > *{
        padding: 2px 0 0;
    	font-size: 15px;
    	width: 40px;
    	height: 40px;
    }


    /* news_show_section
       ================================================================== */
    .news_show_section{
        padding: 45px 0 0;
    }

    .news_show_section .show_flex{
        padding: 0 0 0 50px;
        display: flex;
        justify-content: space-between;
    }

    /* show_main */
    .show_main{
        width: 630px;
    }

    /* show_aside */
    .show_aside{
        width: 246px;
        display: block;
    }

    /* news_show_bottom */
    .news_show_bottom{
        margin: 85px 0 0;
    }


    /* detail_page
       ================================================================== */
    .detail_page{
    	margin: 0 0 0;
    }
    
    .detail_page .detail_box h1{
    	font-size: 24px;
    	margin: 0 0 10px;
    	padding: 0 0 0;
    }
    
    .detail_page .show_top_flex{
    	margin: 20px 0 0;
    }
    
    .detail_page .date{
        width: 90px;
        font-size: 12px;
    }
        
    .detail_page .detail_categories{
        margin: -5px 0 0;
        width: calc(100% - 90px);
    }

    .detail_page .detail_categories > ul{
        margin: 5px 0 0;
        width: calc(100% - 90px);
        gap: 12px;
    }
    
    .detail_page .detail_categories li a{
        padding: 6px 15px;
        font-size: 13px;
        line-height: 100%;
    }
    
    .detail_page .photo{
    	margin: 20px 0 0;
    }
    	
    .detail_page .detail_body{
    	margin: 25px 0 0;
    }


	/* detail_btn_area
	   ================================================================== */
	.detail_btn_area{
		margin: 85px 0 0;
		font-size: 0;
		text-align: center;
	}
	
	.detail_btn_area .detail_arrow_btn{
		margin: 0;
	}

    .detail_btn_area .detail_arrow_btn.back{
    	margin: 0 2%;
    }
	
	.detail_btn_area .detail_arrow_btn a,
	.detail_btn_area .detail_arrow_btn button{
		padding: 0;
		width: 100%;
        height: 46px;
        line-height: 46px;
		text-align: center;
		font-size: 14px;
    }

    .detail_btn_area .detail_arrow_btn a svg,
    .detail_btn_area .detail_arrow_btn button svg{
        width: 7px;
    }

    .detail_btn_area .detail_arrow_btn.prev a svg,
    .detail_btn_area .detail_arrow_btn.prev button svg{
        left: 20px;
    }

    .detail_btn_area .detail_arrow_btn.next a svg,
    .detail_btn_area .detail_arrow_btn.next button svg{
        right: 20px;
    }
 	

    /* side_banner
       ================================================================== */
    .side_banner + .side_banner{
        margin: 20px 0 0;
    }
 	
    .side_banner a{
        display: block;
        line-height: 0;
    }
 	

    /* aside_list_wrap
       ================================================================== */
    .aside_list_wrap{
        padding: 20px 0 0;
    }

    .aside_list_wrap .aside_ttl{
        width: 100%;
        height: 42px;
        font-size: 15px;
        background: #2980B9;
        color: #fff;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .aside_list_wrap .aside_list{
        border: 1px solid #A8A8A8;
        border-top: none;
    }

    .aside_list_wrap .aside_list > li a{
        padding: 10px;
        display: block;
    }

    .aside_list_wrap .aside_list > li:nth-child(n+2){
        border-top: 1px solid #A8A8A8;
    }

    .aside_list_wrap .aside_list > li:nth-child(n+2) a{
        display: flex;
        align-items: center;
    }

    .aside_list_wrap .aside_list > li a span{
        display: block;
    }

    .aside_list_wrap .thm img{
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        aspect-ratio: 1 / 1;
    }

    .aside_list_wrap .ttl{
        padding: 8px 0 0;
        font-size: 11px;
        line-height: 15px;
        box-sizing: border-box;
        overflow: hidden;
        display: -webkit-box !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    /* 2個目以降 */
    .aside_list_wrap .aside_list > li:nth-child(n+2) a{
        display: flex;
        align-items: center;
    }

    .aside_list_wrap .aside_list > li:nth-child(n+2) .thm{
        width: 35%;
    }

    .aside_list_wrap .aside_list > li:nth-child(n+2) .ttl{
        padding: 0 0 0 8px;
        width: calc(100% - 35%);
    }

    .aside_list_wrap .aside_list .thm{
        overflow: hidden;
    }

    .aside_list_wrap .aside_list .thm img{
        transition: .3s;
    }

    .aside_list_wrap .aside_list a:hover .thm img{
        transform: scale(1.05);
    }

    .aside_list_wrap .aside_list .ttl{
        transition: .3s;
    }

    .aside_list_wrap .aside_list a:hover .ttl{
        color: #2980B9;
    }
    

}
