@import url('https://cdn.jsdelivr.net/npm/yakuhanjp@3.0.0/dist/css/yakuhanjp.min.css');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Roboto:ital,wght@0,300;0,400;0,500;1,300&display=swap');


body{
	font-family: 'YakuHanJP', 'Noto Sans JP', sans-serif;
	font-size: 16px;
	line-height: 1.75;
    letter-spacing: 0.1em;
}

*{
    box-sizing: border-box;
}

@media print{
	body{
		width:1100px;
	}
	a[href]:after {
		 content: "" !important;
	}
}

body,div,p,h1,h2,h3,h4,h5,h6,ul,ol,li,dl,dt,dd,figure{
	margin: 0;
	padding: 0;
}

img{
	width:100%;
	height: auto;
    vertical-align: bottom;
}

a{
	outline: none;
    color: #004492;
}

a figure{
	opacity: 1;
	transition: opacity 0.3s;
}
a:hover figure{
	opacity: 0.8;
}

.flex-box{
    display:-webkit-box;
  	display:-ms-flexbox;
    display: flex;
}

.reverse{
    flex-direction: row-reverse;
}

.pc{
	display: block;
}
.pc-inline{
    display: inline;
}
.sp,
.sp-inline{
	display: none;
}
@media screen and (max-width: 820px){
    .pc,
    .pc-inline{
        display: none;
    }
    .sp{
        display: block;
    }
    .sp-inline{
        display: inline;
    }
	
/* SPのみ非表示 display:block;無 */
	.sp-none{
		display: none !important;
	}
	
}

@media screen and (max-width: 768px){
	body{
		font-size: 14px;
	}
}

.clearfix:after {
    content: "";
    clear: both;
    display: block;
}

.content{
    width: 1000px;
    margin: 0 auto;
}

.content-center{
    justify-content: center;
}

.w800{
    width: 800px;
    margin: 0 auto;
}
.w100per {
  width: 100%;
}
.column-3{
    margin: 0 0 100px;
    flex-wrap: wrap;
}
.column-3 div{
    width: 30%;
    margin: 0 0 5% 5%;
}
.column-3 div:nth-of-type(3n+1){
    margin: 0 0 5%;
}

.column-2{
    margin: 0 0 80px;
    justify-content: space-between;
    flex-wrap: wrap;
}
.column-2 div{
    width: 48%;
    padding: 5% 5% 10%;
    margin: 0 0 40px;
    position: relative;
}
.box-w{
    background: #fff;
}
.box-border{
    border: solid 1px #d8d8d8;
}

.box-border-bl-2px{
    border: solid 2px #004492;
}


.box-fix {
  justify-content: space-between;
}

.column-20per-fix {
	width: 20%;
	margin-right:  3%;
} 

.column-2 div figure{
    margin: 0 auto 20px;
}
.column-2 div h3{
    width: 100%;
}
.column-2 div p{
    font-size: 14px;
    /*line-height: 1.7;*/
    letter-spacing: 0;
    word-break: break-all;
}
.column-2 div p:first-of-type{
    margin-bottom: 10px;
}
.column-2 div p:last-of-type{
    margin-bottom: 0;
}
.column-2 div p.txt-r{
    position: absolute;
    right: 50px;
    bottom: 50px;
}

.column-type01{
    justify-content: space-between;
}
.column-type01 div{
    width:80%;
}
.column-type01 div p{
    margin: 0 0 1em;
    font-size: 16px;
    line-height: 2;
    text-align: justify;
}
.column-type01 figure{
    width: 190px;
    margin: 0 0 30px 30px;
}
.column-type01 figure.imgL{
    width: auto;
}

.read{
	height: 286px;
    margin: 0 auto;
    position: relative;
}
.read div{
    width: 1000px;
	margin: 0 auto;
}
.read div h3{
	width: 32.2vw;
}
.read div p{
	width: 32.2vw;
	max-width: 440px;
    font-size: 16px;
    line-height: 2;
    text-align: justify;
}
.read figure{
    width: 670px;
    position: absolute;
	top: 0;
    right: 0;
	z-index: 2;
}

.bread{
	width: 1000px;
	margin: 0 auto;
    padding-bottom: 15px;
    font-size: 0;
    list-style: none;
	text-align: right;
}
.bread li{
    display: inline-block;
    font-size: 13px;
    color: #999;
}
.bread li:after{
    content: "＞";
    display: inline-block;
    margin: 0 5px;
}
.bread li:last-of-type:after{
    content: none;
}
.bread li a{
    color: #999;
    text-decoration: none;
}
.bread li a:hover{
    text-decoration: underline;
}

.content-nav{
    width: 800px;
    margin: 0 auto 60px;
    flex-wrap: wrap;
}

@media screen and (max-width: 1000px){
    .content,
    .content-nav,
    .w800,
	.read{
        width: 84%;
    }
	.read{
		height: inherit;
		position: static;
	}
	.bread{
		width: 100%;
	}
	.second-main .bread{
		width: 84%;
	}
	.read div,
	.read div p{
		width: 100%;
		max-width: inherit;
	}
	.read figure{
		width: 100%;
		margin: 40px 0 -60px;
		position: static;
	}
}

@media screen and (max-width: 820px){
    .column-2 div p{
        margin-bottom: 30px;
    }
    .column-2 div p.txt-r{
        right: 5%;
        bottom: 30px;
    }
	.read div h3{
        width: 100%;
    }
	
	.column-20per-fix{
		width: 80%;
		margin: 0 auto 5px;
		text-align: center;
	}

}

@media screen and (max-width: 800px){
    .content-nav{
        width: 100%;
        justify-content: space-between;
    }
}

@media screen and (max-width: 820px){
    body{
        padding: 80px 0 0;
    }
    body.page{
        padding: 32% 0 0;
    }
    
    .sp-no-flex{
        display: block;
        margin: 0 0 60px;
    }
    
    .sp-no-flex div{
        width: 100%;
        margin: 0 0 60px;
    }
    .sp-no-flex div{
        width: 100%;
    }
    .sp-no-flex div:nth-of-type(3n+1){
        margin: 0 0 60px;
    }
	.sp-no-flex div figure{
		margin: 0 0 10px;
	}
    
    .read{
        display: block;
    }
    .read div{
        width: 100%;
    }
    .read div p{
        font-size: 14px;
    }
    .read figure{
        width: 100%;
        position: static;
    }
    
    .bread{
        padding-bottom: 20px;
    }
	.column-2{
		margin: 0 0 40px;
	}
	.column-2 div{
		padding: 0;
	}
	.column-2 div.box-w{
		padding: 5% 5% 10%;
	}
    .column-2 div p{
        margin: 0 0 60px;
    }
    .column-2 div p:last-of-type{
        margin: 0 0 5%;
    }
	.sp-no-flex div{
		padding: 0;
	}
    
    .column-type01{
        display: block;
    }
    .column-type01 div{
        width: 100%;
        margin: 0 0 40px;
    }
    .column-type01 div p{
        font-size: 14px;
    }
    .column-type01 figure{
        margin: 0 auto 20px;
    }
    
    .answer .content-nav{
        margin: 0 auto 65px;
    }
}

@media screen and (max-width: 768px){
	
	.content{
		margin: 0 auto 30px;
	}
	
    .content,
    .content-nav,
    .w800{
        width: 84%;
    }
	.bread{
		padding-bottom: 10px;
		text-align: left;
	}
	.bread li{
        font-size: 12px;
    }
	.sp-no-flex{
        display: block;
        margin: 0 0 30px;
    }
}


@media screen and (max-width: 320px){
    .answer .content-nav{
        margin: 0 auto 15px;
    }
}


/* --------------------------------------------------------------------------- */
/* Title setting */
/* --------------------------------------------------------------------------- */

.second-main{
	margin: 0 0 80px;
	padding: 85px 0 0;
	background: #f3f7f9;
}
.second-top section.second-main h1{
    margin: 0 0 50px;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    text-align: center;
}
.second-top section h1 span{
    display: block;
    margin: 0 0 20px;
    font-family: 'Roboto', sans-serif;
    font-size: 60px;
    font-weight: 300;
    letter-spacing: 0;
    color: #d5e3ea;
    line-height: 1;
}
.second section h1{
    margin: 60px auto;
    font-size: 20px;
    font-weight: 400;
	text-align: center;
    color: #000;
    line-height: 1;
    letter-spacing: 0.1em;
}
.second section h1 span{
	display: block;
    margin: 0 auto 10px;
    font-family: 'Roboto', sans-serif;
    font-size: 50px;
    font-weight: 300;
    line-height: 1;
    letter-spacing: 0.04em;
    text-align: center;
    color: #cbdbf4;
}

.second section .ttl-01,
.second .ttl-01{
    margin: 0 0 30px;
    padding: 0 0 0 40px;
    font-size: 30px;
    font-weight: 500;
    font-style: normal;
    text-align: left;
    line-height: 1.5;
    color: #004492;
    position: relative;
}
.ttl-01:before{
    content: "";
    display: inline-block;
    width: 20px;
    height: 1px;
    margin: auto;
    background: #004492;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
}

.ttl-02{
    margin: 0 0 15px;
    padding: 0 0 10px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    color: #000;
    letter-spacing: 0;
    border-bottom: solid 1px #000;
}
.ttl-02 span{
    display: block;
    margin: 5px 0 0;
    font-size: 14px;
    font-weight: 400;
}

.ttl-03{
    margin: 0 0 30px;
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0;
    color: #000;
	text-align: center;
    line-height: 1;
}
.ttl-03 span{
	display: block;
    padding: 0 0 15px; 
    font-family: 'Roboto', sans-serif;
    font-size: 50px;
    font-weight: 300;
    letter-spacing: 0.02em;
    color: #d5e3ea;
    vertical-align: middle;
}
.ttl-04{
    margin: 0 0 20px;
    font-size: 24px;
    font-weight: 500;
    text-align: center;
    color: #000;
    letter-spacing: 0;
}
.ttl-05{
    display: inline-block;
    margin: 0 0 15px;
    padding: 0 0 10px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    color: #000;
    letter-spacing: 0;
    border-bottom: solid 1px #000;
}
.ttl-06{
    margin-bottom: 10px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
}
.ttl-07{
    font-size: 15px;
    font-weight: 500;
    color: #004492;
}

.ttl-08{
    margin-bottom: 20px;
    font-size: 18px;
    font-weight: 500;
    color: #004492;
}
.ttl-08 span{
    font-size: 16px;
}

.ttl-09{
    margin: 0 0 40px;
    padding: 0 0 20px;
    font-size: 25px;
    font-weight: 500;
    letter-spacing: 0;
    color: #004492;
    border-bottom: solid 1px #e6e6e6;
}

.ttl-10{
    margin: 0 0 20px;
    font-size: 20px;
    font-weight: 500;
    color: #000;
}

.ttl-11{
    margin: 0 0 30px;
    padding: 18px 30px;
    font-size: 30px;
    font-weight: 500;
    font-style: normal;
    text-align: left;
    line-height: 1.5;
    color: #004492;
    position: relative;
    background-color:#f3f7f9;
}

@media screen and (max-width: 1150px){
    .second-top section h1{
        margin: 0 0 120px;
    }
}

@media screen and (max-width: 820px){
	.second-main{
		padding: 10px 0 0;
	}
	.second-top section.second-main h1,
	.second section h1{
        margin: 40px 0 20px;
        font-size: 16px;
    }
    .second-top section h1 span,
	.second section h1 span{
        margin: 0 0 5px;
        font-size: 40px;
    }
    
    .second section .ttl-01,
    .second .ttl-01{
        margin: 0 0 20px;
        font-size: 20px;
    }
    
    .ttl-02{
        font-size: 18px;
    }
	
	.ttl-04{
        font-size: 20px;
    }
    
    .ttl-05{
        font-size: 18px;
    }
    
    .ttl-06{
        margin: 0 0 10px;
        font-size: 16px;
    }
    
    .ttl-09{
        font-size: 20px;
    }

    .ttl-10{
        font-size: 16px;
    }

    .ttl-11{
        font-size: 22px;
    }
}

@media screen and (max-width: 768px){
	.second-main{
        margin: 0 0 40px;
        padding: 25px 0 0;
        background: #f3f7f9;
    }
    .second-top section.second-main h1{
        margin: 0 0 20px;
        font-size: 16px;
        font-weight: 400;
        line-height: 1;
        text-align: center;
    }
    .second-top section h1 span{
        display: block;
        margin: 0 0 10px;
        font-family: 'Roboto', sans-serif;
        font-size: 36px;
        font-weight: 300;
        letter-spacing: 0;
        color: #d5e3ea;
        line-height: 1;
    }
	
	.second section .ttl-01,
    .second .ttl-01{
        margin: 0 0 15px;
        font-size: 16px;
    }
	
	.second section .ttl-01,
    .second .ttl-01{
        margin: 0 0 20px;
        font-size: 18px;
    }
    
    .ttl-02{
        font-size: 16px;
    }
	
	.ttl-03{
		margin: 0 0 25px;
        font-size: 16px;
    }
    .ttl-03 span{
		padding: 0 0 5px;
        font-size: 32px;
    }
	
	.ttl-04{
        font-size: 18px;
    }
    
    .ttl-05{
        font-size: 16px;
    }
    
    .ttl-06{
        margin: 0 0 10px;
        font-size: 16px;
    }
    
    .ttl-09{
        font-size: 18px;
    }

    .ttl-10{
        font-size: 16px;
    }

    .ttl-11{
        font-size: 20px;
        padding: 10px;
    }
}
}

@media screen and (max-width: 375px){
    .second-top section h1 span{
        margin: 6% 0 0;
    }
}

@media screen and (max-width: 320px){
    .second-top section h1 span{
        margin: 5% 0 0;
        font-size: 36px;
    }
}


/* --------------------------------------------------------------------------- */
/* Text setting */
/* --------------------------------------------------------------------------- */

.txt-l{
	text-align: left!important;
}

.txt-r{
    text-align: right!important;
}

.txt-c{
	text-align: center!important;
}

.txt-justify{
    text-align: justify;
}

.fs-12{
    font-size: 12px;
}

.fs-14{
    font-size: 14px;
}

.fs-15{
    font-size: 15px;
}

.fs-16{
    font-size: 16px;
}

.fs-16-im{
    font-size: 16px !important;
}

.fs-17{
    font-size: 17px;
}

.fs-18{
    font-size: 18px;
}
.fs-20{
    font-size: 20px;
}

.fw-400{
    font-weight: 400;
}
.fw-500{
    font-weight: 500;
}
.fw-700{
    font-weight: 700;
}

.txt-red{
    color: #c1272d;
}

.txt-bl{
    color: #004492;
}

.line-h2{
    line-height: 2;
}

.spacer-none{
    letter-spacing: 0;
}

.mb0{
	margin-bottom: 0!important;
}

.mb10,
.news .mb10{
    margin-bottom: 10px!important;
}
.mb20,
.news .mb20{
    margin-bottom: 20px !important;
}
.mb30,
.news .mb30{
    margin-bottom: 30px !important;
}
.mb40,
.news .mb40{
    margin-bottom: 40px !important;
}
.mb50,
.news .mb50{
    margin-bottom: 50px !important;
}
.mb60,
.news .mb60{
    margin-bottom: 60px !important;
}
.mb70,
.news .mb70{
    margin-bottom: 70px !important;
}
.mb80,
.news .mb80{
    margin-bottom: 80px !important;
}
.mb90,
.news .mb90{
    margin-bottom: 90px !important;
}
.mb100,
.news .mb100{
    margin-bottom: 100px !important;
}

.mb180{
    margin-bottom: 180px !important;
}

.box-space0{
    padding: 0 !important;
}

.box-space20{
    padding: 20px;
}
.box-space30{
    padding: 30px;
}
.box-space40{
    padding: 40px!important;
}

.pd0{
	padding: 0!important;
}

.pb10{
	padding-bottom: 10px !important;
}


.second-top section h1 + p{
    margin: 0 0 60px;
    font-size: 16px;
    text-align: center;
}

.bg-gray{
	background: #f3f7f9;
}


.txt-indent01 {
  padding-left: 1em;
  text-indent: -1em;
}

.txt-indent02 {
  padding-left: 1.9em;
  text-indent: -1.9em;
}

.txt-list{
	list-style-position: inside;
	padding-left: 1.5em;
	text-indent: -1.2em;
}


@media screen and (max-width: 820px){
    .mb10,
    .news .mb10{
        margin-bottom: 5px!important;
    }
    .mb20,
    .news .mb20{
        margin-bottom: 10px !important;
    }
    .mb30,
    .news .mb30{
        margin-bottom: 15px !important;
    }
    .mb40,
    .news .mb40{
        margin-bottom: 20px !important;
    }
    .mb50,
    .news .mb50{
        margin-bottom: 25px !important;
    }
    .mb60,
    .news .mb60{
        margin-bottom: 30px !important;
    }
    .mb70,
    .news .mb70{
        margin-bottom: 35px !important;
    }
    .mb80,
    .news .mb80{
        margin-bottom: 40px !important;
    }
    .mb90,
    .news .mb90{
        margin-bottom: 45px !important;
    }
    .mb100,
    .news .mb100{
        margin-bottom: 50px !important;
    }
    
    .box-space20{
        padding: 10px;
    }
    .box-space30{
        padding: 15px;
    }
    .box-space40{
        padding: 20px!important;
    }
	
	.pb10{
	padding-bottom: 5px !important;
}

	.sp-mr-3per{
		margin-right:3%;
	}
	.sp-ml-3per{
		margin-left:3%;
	}	
	
    .second-top section h1 + p{
        margin: 0 0 30px;
        font-size: 14px;
    }
}

@media screen and (max-width: 768px){
	.fs-14{
        font-size: 12px;
    }

    .fs-15{
        font-size: 13px;
    }

    .fs-16{
        font-size: 14px;
    }
	
	.fs-16-im{
    font-size: 14px !important;
	}
}


/* border setting SP用コンテンツ区切り線 */
.sp-d-line{
	border: none;
}
@media screen and (max-width: 768px){
.sp-d-line{
		border:none; 
		border-top:dashed 1px #d8d8d8; 
		height:1px; 
		width:80%;
		margin: 5% auto;
	}
}

/* --------------------------------------------------------------------------- */
/* Link setting */
/* --------------------------------------------------------------------------- */

.link-01{
    margin: 0 auto 123px;
    justify-content: space-between;
}
.link-01 a{
    display: block;
    width: 30.5%;
    padding: 23px 20px 22px;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    color: #000;
    text-decoration: none;
	background: #fff;
	border: solid 1px #222;
    box-sizing: border-box;
    position: relative;
	transition: color 0.5s, background 0.25s;
}
.link-01 a span:before{
	content: "";
    display: block;
    width: 35px;
    height: 1px;
	margin: auto;
	background: #222;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 20px;
    transition: right 0.5s;
}
.link-01 a span:after{
	content: "";
    display: block;
    width: 0;
    height: 0;
	margin: auto;
    border-style: solid;
    border-width: 3.5px 0 3.5px 6px;
    border-color: transparent transparent transparent #222;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 20px;
    transition: right 0.5s;
}
.link-01 a:hover{
	color: #fff;
	background: #004492;
}
.link-01 a:hover span:before,
.link-01 a:hover span:after{
    right: 15px;
}
.link-01 a:hover span:before{
	background: #fff;
}
.link-01 a:hover span:after{
	border-color: transparent transparent transparent #fff;
}


.link-02{
    font-family: 'Roboto', sans-serif;
    font-size: 14px;
    color: #000;
    text-decoration: none;
    position: relative;
}
.link-02:after{
    content: "";
    display: inline;
    width: 26px;
    height: 7px;
    margin: auto;
    background: url("../img2/icn_arrow_bk.png") left top / 100% auto no-repeat;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
}
.link-02 span{
    padding: 0 37px 0 0;
    position: relative;
    transition: color 0.4s cubic-bezier(.215,.61,.355,1);
}
.link-02 span:after{
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #000;
    position: absolute;
    left: 0;
    bottom: -9px;
    transition: background-color 0.3s cubic-bezier(0.215,0.61,0.355,1);
}
.link-02:hover span:after{
    -webkit-animation: hover_line 0.6s cubic-bezier(0.19,1,0.22,1);
    animation: hover_line 0.6s cubic-bezier(0.19,1,0.22,1);
    animation-fill-mode: none;
    -webkit-animation-fill-mode: forwards;
}

.link-03{
    display: block;
    width: 200px;
    margin: 0 auto 80px;
    padding: 10px 0;
	font-family: 'Roboto', sans-serif;
	font-size: 14px;
    text-align: center;
    text-decoration: none;
    color: #000;
	background: #fff;
    border: solid 1px #000;
    border-radius: 45px;
    position: relative;
	transition: color 0.5s, background 0.5s;
}
.link-03 span:before{
	content: "";
    display: block;
    width: 15px;
    height: 1px;
	margin: auto;
	background: #222;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 10px;
    transition: right 0.5s;
}
.link-03 span:after{
	content: "";
    display: block;
    width: 0;
    height: 0;
	margin: auto;
    border-style: solid;
    border-width: 3.5px 0 3.5px 6px;
    border-color: transparent transparent transparent #222;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 10px;
    transition: right 0.5s;
}
.link-03:hover{
	color: #fff;
	background: #004492;
}
.link-03:hover span:before,
.link-03:hover span:after{
    right: 5px;
}
.link-03:hover span:before{
	background: #fff;
}
.link-03:hover span:after{
	border-color: transparent transparent transparent #fff;
}

.link-04{
	margin: 0 auto 120px;
    justify-content: space-between;
}
.link-04 a{
    display: block;
    width: 31%;
	padding: 23px 20px 22px 30px;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    color: #000;
    text-decoration: none;
	background: #fff;
	border: solid 1px #222;
    box-sizing: border-box;
    position: relative;
	transition: color 0.5s, background 0.25s;
}
.link-04 a span:before{
	content: "";
    display: block;
    width: 35px;
    height: 1px;
	margin: auto;
	background: #222;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 20px;
    transition: right 0.5s;
}
.link-04 a span:after{
	content: "";
    display: block;
    width: 0;
    height: 0;
	margin: auto;
    border-style: solid;
    border-width: 3.5px 0 3.5px 6px;
    border-color: transparent transparent transparent #222;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 20px;
    transition: right 0.5s;
}
.link-04 a:hover{
	color: #fff;
	background: #004492;
}
.link-04 a:hover span:before,
.link-04 a:hover span:after{
    right: 15px;
}
.link-04 a:hover span:before{
	background: #fff;
}
.link-04 a:hover span:after{
	border-color: transparent transparent transparent #fff;
}

a.link-05{
    display: block;
    color: #000;
    text-decoration: none;
}
a.link-05{
    font-family: 'Roboto', sans-serif;
    font-size: 22px;
    color: #000;
    text-decoration: none;
    position: relative;
}
.link-05 span{
	display: block;
	width: 87.8%;
	margin: 0 auto;
    padding: 0;
    position: relative;
    transition: color 0.4s cubic-bezier(.215,.61,.355,1);
}
a.link-05 span{
    display: block;
	width: 86.9%;
	margin: 0 auto;
    padding: 30px 0 15px;
	font-family: 'YakuHanJP', 'Noto Sans JP', sans-serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.35;
    position: relative;
}
a.link-05 span:before{
	content: "";
    display: block;
    width: 35px;
    height: 1px;
	margin: auto;
	background: #222;
    position: absolute;
    top: 10px;
    bottom: 0;
    right: 0;
}
a.link-05 span:after{
	content: "";
    display: block;
    width: 0;
    height: 0;
	margin: auto;
    border-style: solid;
    border-width: 3.5px 0 3.5px 6px;
    border-color: transparent transparent transparent #222;
    position: absolute;
    top: 10px;
    bottom: 0;
    right: 0;
}
.link-05:after{
    content: "";
    display: block;
    width: 86.9%;
    height: 1px;
	margin: 0 auto;
    background-color: #000;
    position: absolute;
    left: 0;
	right: 0;
    bottom: 0;
    transition: background-color 0.3s cubic-bezier(0.215,0.61,0.355,1);
}
.link-05:hover:after{
    -webkit-animation: hover_line 0.6s cubic-bezier(0.19,1,0.22,1);
    animation: hover_line 0.6s cubic-bezier(0.19,1,0.22,1);
    animation-fill-mode: none;
    -webkit-animation-fill-mode: forwards;
}


.link-06{
    margin: 0 auto 70px;
    justify-content: space-between;
    flex-wrap: wrap;
}
.link-06 a{
    display: block;
    width: 31%;
	padding: 23px 20px 22px 30px;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0;
    color: #000;
    text-decoration: none;
    background: #fff;
	border: solid 1px #222;
    box-sizing: border-box;
    position: relative;
	transition: color 0.5s, background 0.25s;
}
.link-06 a span:before{
	content: "";
    display: block;
    width: 35px;
    height: 1px;
	margin: auto;
	background: #222;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 20px;
    transition: right 0.5s;
}
.link-06 a span:after{
	content: "";
    display: block;
    width: 0;
    height: 0;
	margin: auto;
    border-style: solid;
    border-width: 3.5px 0 3.5px 6px;
    border-color: transparent transparent transparent #222;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 20px;
    transition: right 0.5s;
}
.link-06 a:hover{
	color: #fff;
	background: #004492;
}
.link-06 a:hover span:before,
.link-06 a:hover span:after{
    right: 15px;
}
.link-06 a:hover span:before{
	background: #fff;
}
.link-06 a:hover span:after{
	border-color: transparent transparent transparent #fff;
}

.topics .link-06 a{
    width: 48.2%;
    margin: 0 0 30px;
}

.link-07{
    font-size: 20px;
    font-weight: 500;
    color: #004492;
    text-decoration: none;
    position: relative;
}
.link-07 span{
    padding: 0;
    position: relative;
    transition: color 0.4s cubic-bezier(.215,.61,.355,1);
}
.link-07 span:after{
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #004492;
    position: absolute;
    left: 0;
    bottom: -9px;
    transition: background-color 0.3s cubic-bezier(0.215,0.61,0.355,1);
}
.link-07:hover span:after{
    -webkit-animation: hover_line 0.6s cubic-bezier(0.19,1,0.22,1);
    animation: hover_line 0.6s cubic-bezier(0.19,1,0.22,1);
    animation-fill-mode: none;
    -webkit-animation-fill-mode: forwards;
}

.link-08 a{
    display: block;
    width: 240px;
    margin: 0 0 50px 40px;
    font-size: 20px;
    font-weight: 500;
    color: #004492;
    text-decoration: none;
    position: relative;
}
.link-08 a:nth-of-type(3n+1){
    margin: 0 0 50px;
}
.link-08 a:after{
    content: "";
    display: inline;
    width: 32px;
    height: 7px;
    margin: auto;
    background: url("../img2/icn_arrow_bl.png") left top / 100% auto no-repeat;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
}
.link-08 a span{
    display: block;
    padding: 0;
    position: relative;
    transition: color 0.4s cubic-bezier(.215,.61,.355,1);
}
.link-08 a span:after{
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #004492;
    position: absolute;
    left: 0;
    bottom: -9px;
    transition: background-color 0.3s cubic-bezier(0.215,0.61,0.355,1);
}
.link-08 a:hover span:after{
    -webkit-animation: hover_line 0.6s cubic-bezier(0.19,1,0.22,1);
    animation: hover_line 0.6s cubic-bezier(0.19,1,0.22,1);
    animation-fill-mode: none;
    -webkit-animation-fill-mode: forwards;
}

.link-09{
    color: #004492;
    text-decoration: underline;
}
.link-09:before{
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    margin: 0 0.5em 0 0;
    border-style: solid;
    border-width: 4px 0 4px 6px;
    border-color: transparent transparent transparent #000;
}
.link-09:hover{
    text-decoration: none;
}

.blank span:before{
	content: "";
	display: inline-block;
	width: 14px;
	height: 12px;
	margin: 0 5px 0 0;
	background: url("../img2/icn_blank.png") left top / 100% auto no-repeat;
}

.link_outside:before{
	content: "";
	display: inline-block;
	width: 14px;
	height: 12px;
	margin: 0 5px 0 0;
	background: url("../img2/icn_blank.png") left top / 100% auto no-repeat;
}



.dl{
    display: inline-block;
    padding: 20px 40px 20px 30px;
    font-size: 16px;
    font-weight: 500;
    color: #004492;
    text-decoration: none;
    background: #e8e8e8;
    opacity: 1;
    transition: opacity 0.3s;
    position: relative;
}
.dl:hover{
    opacity: 0.8;
}
.dl span{
    font-size: 14px;
}
.dl:after{
    content: "";
    display: block;
    width: 18px;
    height: 18px;
    margin: auto;
    background: url("../img2/icn_download.png") center center / 100% auto no-repeat;
    position: absolute;
    right: 20px;
    top: 0;
    bottom: 0;
}
/*関連情報用*/
.relevance{
    margin: 0 0 70px;
    padding: 40px;
    border: solid 1px #d8d8d8;
}
.relevance a{
    display: block;
    margin: 0 0 20px;
    padding: 0 0 0 23px;
    font-size: 16px;
    color: #000;
    text-decoration: underline;
    position: relative;
    transition: color 0.3s;
}
.relevance a:last-of-type{
    margin: 0;
}
.relevance a:before{
    content: "";
    display: block;
    width: 15px;
    height: 7px;
    margin: auto;
    background: url("../img2/icn_arrow_bk.png") right top / auto 100% no-repeat;
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 0;
}
.relevance a:hover{
    color: #004492;
    text-decoration: none;
}

@-webkit-keyframes hover_line {
  0% {
      -webkit-transform-origin:right center;
      transform-origin:right center;
      -webkit-transform:scaleX(1);
      transform:scaleX(1)
  }
  50% {
      -webkit-transform-origin:right center;
      transform-origin:right center;
      -webkit-transform:scaleX(0);
      transform:scaleX(0)
  }
  51% {
      -webkit-transform-origin:left center;
      transform-origin:left center;
      -webkit-transform:scaleX(0);
      transform:scaleX(0)
  }
  100% {
      -webkit-transform-origin:left center;
      transform-origin:left center;
      -webkit-transform:scaleX(1);
      transform:scaleX(1)
  }
}

@media screen and (max-width: 1000px){
    .link-01{
        margin: 0 auto 10%;
    }
    .link-01 a,
    .link-04 a{
        display: flex;
        align-items: center;
        font-size: 0.8rem;
    }
    
    .link-08{
        justify-content: space-between;
    }
    .link-08 a{
        width: 47%;
    }
    .link-08 a,
    .link-08 a:nth-of-type(3n+1){
        margin: 0 0 50px;
    }
}

@media screen and (max-width: 990px){
    a.link-05 span,
    .link-06 a{
        font-size: 14px;
    }
}

@media screen and (max-width: 820px){
	.link-04,
	.link-06{
		margin: 0 auto 20px;
	}
	.link-04 a{
		padding: 15px 20px 15px 20px;
	}
	.link-04 a span{
		padding: 0 40px 0 0;
	}
}

@media screen and (max-width: 768px){
    .link-01,
    .link-04{
        display: block;
        margin: 0 auto 60px;
    }
    .link-01 a,
    .link-04 a{
        width: 100%;
        margin: 0 0 20px;
        font-size: 14px;
    }
    .link-01 a:last-of-type{
        margin: 0;
    }
    
    .link-03{
        width: 200px;
        padding-right: 10px;
    }
	
	a.link-05 span{
		padding: 15px 0;
	}
    
    .link-06{
        display: block;
    }
     .link-06 a,
    .topics .link-06 a{
         width: 100%;
         margin: 0 0 20px;
    }
    
    .link-08 a{
        width: 47%;
        margin: 0 0 30px;
        font-size: 14px;
    }
    .link-08 a:nth-of-type(3n+1){
        margin: 0 0 30px;
    }
    
    .relevance{
        padding: 20px;
    }
    .relevance a{
        margin: 0 0 10px;
        font-size: 14px;
    }
}

@media screen and (max-width: 375px){
    .link-08 a{
        font-size: 12px;
    }
    .link-08 a:after{
        width: 28px;
        height: 7px;
    }
}

@media screen and (max-width: 320px){
    .link-08 a{
        font-size: 11px;
    }
    .link-08 a:after{
        width: 20px;
        height: 7px;
    }
}


/* --------------------------------------------------------------------------- */
/* table setting */
/* --------------------------------------------------------------------------- */

table{
    width: 100%;
    border-collapse: collapse;
}
table th{
    width: 16%;
    font-weight: 400;
    font-size: 15px;
    color: #000;
    vertical-align: top;
    text-align: left;
}
table td{
    width: 84%;
}
table th,
table td{
    padding: 30px 0;
    border-bottom: solid 1px #e6e6e6;
}

table.table-01 th,
table.table-01 td{
    padding: 20px;
    border: solid 1px #d8d8d8;
}
table.table-01 th{
    width: 20%;
    color: #000;
    background: #f7f7f7;
    vertical-align: middle;
}
table.table-01 td{
    width: 80%;
}

form .table-01 th{
    width: 40%;
}

table.column-3-sp-flex td{
    width: 40%;
}

table.table-02{
 font-size: 14px;
}

table.table-02 th{
    padding: 15px 10px;
    text-align: center;
    border: solid 1px #aaaaaa;
	background-color: #BDD6EE;
    vertical-align: middle;
}
table.table-02 td{
    padding: 10px;
    background: #f3f3f3;
    border: solid 1px #aaaaaa;
}

table.table-02 th.w20,
table.table-02 td.w20{
    width: 26%;
}

table.table-02 td{
    width: 27%;
}
table.table-02 td{
    width: inherit;
    background: #fff;
}



/* 調整用 th幅50%にしたい場合使用（SP100%） */
.th-50per{
	width: 50% !important;
}

input[type=text],
input[type=tel],
textarea{
    width: 70%;
    padding: 10px;
    font-size: 16px;
}

.btn-submit,
.btn-back{
    display: inline-block;
    width: 240px;
    margin: 0 auto;
    position: relative;
}
.btn-submit input,
.btn-back input{
    display: block;
    width: 100%;
    padding: 20px 30px;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0;
    color: #000;
    text-decoration: none;
    background: #fff;
    border: solid 1px #000;;
    box-sizing: border-box;
    position: relative;
    
}
.btn-submit:after,
.btn-back:after{
    content: "";
    display: inline;
    width: 26px;
    height: 7px;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
}
.btn-submit:after{
    background: url("../img2/icn_arrow_next.png") left top / 100% auto no-repeat;
    right: 20px;
    transition: right 0.3s;
}
.btn-back:after{
    background: url("../img2/icn_arrow_prev.png") left top / 100% auto no-repeat;
    left: 20px;
    transition: left 0.3s;
}
.btn-submit input:hover{
    cursor: pointer;
}
.btn-submit:hover:after{
    right: 15px;
}
.btn-back:hover:after{
    left: 15px;
}

@media screen and (max-width: 820px){
    table th{
        width: 25%;
        font-size: 14px;
    }
    table td{
        width: 75%;
        font-size: 14px;
    }
    table th,
    table td{
        padding: 15px 0;
    }
    
    table.table-01 th,
    table.table-01 td{
        display: block;
        width: 100%;
        margin-bottom: -1px;
    }

    table.column-3-sp-flex th,
    table.column-3-sp-flex td{
        display: table-cell;
        margin-bottom: 0;
    }

    table.column-3-sp-flex th{
        width: 20%;
    }

    table.column-3-sp-flex td{
        width: 40%;
    }
    
    table.sp-table-block th,
    table.sp-table-block td{
        display: block;
        width: 100%;
    }
    table.sp-table-block th{
        padding: 15px 0 0;
        border-bottom: none;
    }
    table.sp-table-block td{
		padding: 0 0 15px;}
     
    .tbl-fix > table th,
    .tbl-fix > table td{
            display: table-cell;
            width: auto;
        }
	
    table.table-02 th{
    padding: 15px 10px;
    text-align: center;
}
    table.table-02 td{
    padding: 10px;
}
	
table.table-02 th.w20,
table.table-02 td.w20{
    width: auto;
	}
	
	
/* 調整用 th幅50%にしたい場合使用（SP100%） */	
.th-50per{
	width: 100% !important;
}
		
    input[type=text],
    input[type=tel],
    textarea{
        width: 100%;
    }
    
    .btn-submit,
    .btn-back{
        width: 100%;
        margin: 0 auto 10px;
    }
	
}

@media screen and (max-width: 768px){
	table th,
	table td{
		display: block;
		width: 100%;
	}
	table th{
		padding: 15px 0 0;
		border-bottom: none;
	}
	table td{
		padding: 0 0 15px;
	}
}

/* --------------------------------------------------------------------------- */
/* youtube setting */
/* --------------------------------------------------------------------------- */
.video_s {
  text-align: center;
}	
@media only screen and (max-width: 1024px) {
    .video_s {
        width: 90%;
        text-align: center;
        margin-left:auto;
        margin-right:auto;
    }
    .video_s iframe {
        width: 100%;
    }	
}
@media only screen and (max-width: 820px) {
  .video_s {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
  }
	
.video_s iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }	
}
.youtube{
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    max-width: 600px;
}
.youtube iframe{
    width: 100%;
    height: 100%;
}

/* --------------------------------------------------------------------------- */
/* 文字回り込み setting */
/* --------------------------------------------------------------------------- */

/*左に画像・右に文字*/
.column-2-fl-img-left{
	float: left; 
	width:49%;
	margin-right: 20px;
}

/*左に画像・右に文字*/
.column-3-fl-img-left{
	float: left; 
	width:24%;
	margin-right: 20px;
}

/*右に画像・左に文字*/			
.column-2-fl-img-right{
	float: right; 
	width:49%;
	margin-left: 20px;
}

/*右に画像・左に文字*/			
.column-3-fl-img-right{
	float: right; 
	width:24%;
	margin-left: 20px;
}
/*右に画像・左に文字*/			
.column-4-fl-img-right{
	float: right; 
	width:40%;
	margin-left: 20px; 
	clear: both;
}



/*回り込み解除*/
.clear-b{clear: both;}

		
@media screen and (max-width: 820px){
			.column-2-fl-img-left,.column-2-fl-img-right{
				float: none;
				width:100%;
				margin: auto;
			}	
}

@media screen and (max-width: 820px){
			.column-3-fl-img-left,.column-3-fl-img-right{
				float: none;
				width:100%;
				margin: auto;
			}	

}

@media screen and (max-width: 820px){
			.column-4-fl-img-left,.column-4-fl-img-right{
				float: none;
				width:100%;
				margin: auto;
			}	

}




/* --------------------------------------------------------------------------- */
/* BOXサイズ設定 */
/* --------------------------------------------------------------------------- */

 
.column-80per{
    width: 80%;
}

.column-77per {
  width: 77%;
}

.column-73per {
  width: 73%;
}

.column-68per{
	width:68%;
}

.column-62per{
    width: 62.2%;
}

.column-34per{
    width: 34%;
}

.column-24per {
  width: 24%;
  /*max-width: 200px;*/
}

.column-20per {
  width: 20%;
}

.m-center{margin: 0 auto;}


@media not all, screen and (max-width: 820px) {
    .column-80per{
        width: 100%;
        margin-bottom: 30px;
    }
	
	.column-77per {
    width: 100%;
    margin-bottom: 30px;
  }	
	
	.column-73per {
    width: 100%;
    margin-bottom: 30px;
  }
	
	.column-68per{
	    width: 100%;
        margin-bottom: 30px;
	}
	
    .column-62per{
        width: 100%;
        margin-bottom: 15px;
    }

    .column-34per{
        width: 100%;
		margin-bottom: 15px;
    }

	.column-24per {
    width: 100%;
    /*margin: 0 auto 20px;*/
  }
	
	.column-20per {
 		width: 100%;
		margin-bottom: 15px;
		
	}	
 	
}



/* --------------------------------------------------------------------------- */
/* bxSlider 設定 */
/* --------------------------------------------------------------------------- */

/*矢印位置 設定*/
	.bx-prev{left: -7% !important;}	
	.bx-next{right: -7% !important;}	
	
@media screen and (max-width: 820px){
	.bx-prev{left: 1% !important;}	
	.bx-next{right: 1% !important;}	
}


/* --------------------------------------------------------------------------- */
/* Header */
/* --------------------------------------------------------------------------- */

header{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    max-width: 1366px;
    margin: 0 auto;
    padding: 20px 50px;
    justify-content: space-between;
    align-items: center;
}
header h1 a img,
.scrol-nav div p a img,
.topics h1 a img{
    width: 250px;
    margin: 0 1em 0 0;
    vertical-align: text-top;
}
header nav ul,
.scrol-nav div nav ul{
    font-size: 0;
}
header nav.pc li,
.scrol-nav div nav ul li{
    display: inline-block;
    margin: 5px 30px 5px 0;
    font-size: 14px;
    list-style: none;
}
/*header nav.pc li:after,
.scrol-nav div nav ul li:after{
    content: "/";
    display: inline-block;
    margin: 5px 0 5px 1em;
}*/
header nav.pc li:nth-of-type(5),
.scrol-nav div nav ul li:nth-of-type(5){
    margin: 0 15px 0 0;
}
header nav.pc li:last-of-type,
.scrol-nav div nav ul li:last-of-type{
    margin: 0;
}
header nav.pc li a,
.scrol-nav div nav ul li a{
    font-weight: 500;
    color: #000;
    text-decoration: none;
    letter-spacing: 0.1em;
    transition: color 0.3s;
}
header nav.pc li a:hover,
.scrol-nav div nav ul li a:hover{
    color: #004492;
}
header nav.pc li:nth-of-type(4):after,
header nav.pc li.btn:after,
.scrol-nav div nav ul li:nth-of-type(4):after,
.scrol-nav div nav ul li.btn:after{
    content: none;
}
header nav.pc li.btn a,
.scrol-nav div nav ul li.btn a{
    padding: 8px 20px;
    font-weight: 400;
	color: #fff;
    background: #231815;
    border-radius: 38px;
    transition: background 0.3s;
}
header nav.pc li.btn a:hover,
.scrol-nav div nav ul li.btn a:hover{
    background: #004492;
}

.drawer,
.sp-nav{
    display: none;
}

/* modal
=============================================================================================================== */
.modalBase{position:fixed; left:0; top:0; width:100%; height:100vh; background:rgba(0,0,0,.5); display:flex; justify-content:center; align-items:center; z-index:1000; display:none;}
.modalStage{max-width:94vw; max-height:94vh;}
.modalStage img{max-width:100%; max-height:100%; width:auto; height:auto;}
.modalStage .close{padding:10px 0; display:block; text-align:right;}
.modalStage .close a{color:#fff;}

.scrol-nav{
    width: 100%;
   /* background: url(../img2/bg_nav.png) left top / 500px auto;*/
    position: fixed;
    top: -150px;
    left: 0;
    z-index: 100;
    transition: top 0.3s;
	background-color: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(5px);
}
.scrol-nav div{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    max-width: 1366px;
    margin: 0 auto;
    padding: 17px 35px 17px 60px;
    justify-content: space-between;
    align-items: center;
}
.scrol-nav-on{
    top: 0;
}

@media screen and (max-width: 1112px){
	header nav.pc,
	.scrol-nav div nav ul{
		flex: 1;
	}
	header nav.pc li,
	.scrol-nav div nav ul li{
		margin: 5px 2% 5px 0;
	}
}

@media screen and (max-width: 820px){
    header{
        display: block;
        width: 100%;
		margin: 0 auto;
        padding: 0;
        position: fixed;
        left: 0;
        top: 0;
        z-index: 10;
        overflow-y: scroll;
		background-color: rgba(255, 255, 255, 0.9);
        backdrop-filter: blur(5px);
    }
    header h1{
        margin: 15px 25px;
    }
    .scrol-nav{
        display: none;
    }
    .open header{
        background: #fff;
    }
    .open .sp-nav ul{
        width: 74%;
        margin: 0 auto;
        list-style: none;
    }
    .open .sp-nav ul li a{
        display: block;
        padding: 25px 0;
        font-size: 16px;
        color: #000;
        text-decoration: none;
        border-bottom: solid 1px #000;
        position: relative;
    }
    .open .sp-nav ul li a:after{
        content: "";
        display: block;
        width: 0;
        height: 0;
        margin: auto;
        border-style: solid;
        border-width: 4px 0 4px 6px;
        border-color: transparent transparent transparent #231815;
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
    }
    .open .sp-nav ul li.btn a{
        margin: 0 0 0;
        padding: 15px 0;
        color: #fff;
        border-bottom: none;
        background: #231815;
    }
    .drawer{
        display: block;
        width: 36px;
        height: 36px;
        margin-top: 15px;
        cursor: pointer;
        position: fixed;
        top: 0;
        right: 5.3%;
        -webkit-tap-highlight-color: transparent;
        transition: background 0.75s;
        background-color: #000;
        z-index: 50;
        border-radius: 100%;
    }
    .drawer div{
        height: 50px;
        margin: 14px auto 0;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
    }
    .drawer div span{
        width: 15px;
        height: 1px;
        margin: auto;
        background: #fff;
        position: absolute;
        left: 0;
        right: 0;
        border-radius: 1px;
    }
    .drawer div span.open{
        transition: top 0.1s linear, transform 0.15s ease-in-out 0.1s, width 0.1s linear 0.1s;
    }
    .drawer div span.close{
        transition: top 0.15s linear 0.15s, transform 0.1s ease-in-out, width 0.1s linear 0.1s;
    }
    .drawer span:nth-child(1) {
        top: 0;
    }
    .drawer span:nth-child(2){
        top: 4px;
    }
    .drawer span:nth-child(3){
        top: 8px;
    }
    .open .drawer span:nth-child(1){
         top: 4px;
        -webkit-transform: rotate(-45deg);
        transform: rotate(-45deg);
    }
    .open .drawer span:nth-child(2) {
        width: 0;
    }
    .open .drawer span:nth-child(3){
         top: 4px;
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
    }
    .open .drawer span:nth-child(1) {
        top: 4px;
    }
    .open #drawer-bg{
        width: 100%;
        height: 100%;
        z-index: 5;
        position: fixed;
        top: 0;
    }
    .open .nav-open{
        display: block;
        height: 100vh;
        padding: 0 0 50px;
        right: 0;
        transition: all 0.75s;
        opacity: 1;
        overflow-y: scroll;
    }
    .open nav.sp-nav li{
        font-size: 14px;
    }
    header h1 a img,
	.topics header h1 a img{
        width: 180px;
        margin: 0;
    }
    header .sp-nav li.btn{
        margin: 50px 0 0;
    }
    header .sp-nav li.btn:last-of-type{
        margin: 20px 0 50px;
    }
    header .sp-nav li.btn a{
        padding: 8px 20px;
        font-weight: 400;
        color: #fff;
        text-align: center;
        background: #004492;
        border-radius: 38px;
        position: relative;
        transition: color 0.3s, background 0.3s;
    }
    header .sp-nav li.btn a:after{
        content: "";
        display: block;
        width: 0;
        height: 0;
        margin: auto;
        border-style: solid;
        border-width: 4px 0 4px 6px;
        border-color: transparent transparent  transparent #fff;
        position: absolute;
        top: 0;
        bottom: 0;
        right: 20px;
    }
    .sp-nav ul.sub{
        width: 100%;
        padding: 40px 50px 80px;
        background: #f3f7f9;
    }
    .sp-nav ul.sub li a{
        padding: 10px 0;
        border-bottom: none;
    }
    .sp-nav ul.sub li a:after{
        content: none;
    }
    .sp-nav ul.sub li a:before{
        content: "-";
        display: inline-block;
        margin: 0 5px 0 0;
    }
}

@media screen and (max-width: 320px){
    .open .sp-nav ul{
        width: 76%;
    }
    .open .sp-nav ul li a{
        padding: 20px 0;
    }
    .sp-nav ul.sub{
        width: 100%;
        padding: 50px 40px 60px;
    }
}



/* --------------------------------------------------------------------------- */
/* Footer */
/* --------------------------------------------------------------------------- */

footer{
    padding: 40px 0 25px;
}
footer .footer-box{
    width: 1000px;
    margin: 0 auto;
    position: relative;
}
footer .footer-box .logo{
    width: 250px;
    margin: 0 0 20px;
}
footer .footer-box ul{
	display: flex;
    margin: 0 0 30px;
    font-size: 0;
    list-style: none;
    text-align: center;
	justify-content: center;
	flex-wrap: wrap;
}
footer .footer-box ul li{
    display: inline-block;
    padding: 0;
    font-size: 13px;
    letter-spacing: 0.02em;
}
footer .footer-box ul li:after{
    content: "|";
    display: inline;
    padding: 0 0.75em;
}
footer .footer-box ul li:last-of-type{
    padding: 0;
}
footer .footer-box ul li:last-of-type:after{
    content: none;
}
footer .footer-box ul li a{
    color: #231815;
    text-decoration: none;
    transition: color 0.3s;
}
footer .footer-box ul li a:hover{
    color: #004492;
}
footer .footer-box .cright{
    margin: 0;
    font-size: 13px;
    font-family: 'Roboto', sans-serif;
    text-align: center;
    letter-spacing: 0.02em;
    color: #a0a0a0;
}
footer .footer-box .btn-pagetop a{
    display: block;
    width: 50px;
    height: 50px;
    padding: 20px 0 0;
    font-size: 11px;
    font-family: 'Roboto', sans-serif;
    text-align: center;
	color: #fff;
    text-decoration: none;
    border-radius: 50px;
    background: #231815;
    position: absolute;
    right: 0;
    top: 0;
	transition: background 0.5s;
}
footer .footer-box .btn-pagetop a:before{
    content: "";
    display: block;
    width: 0;
    height: 0;
    margin: auto;
    border-style: solid;
    border-width: 0 4px 6px 4px;
    border-color: transparent transparent #fff transparent;
    position: absolute;
    left: 0;
    right: 0;
    top: 10px;
	transition: top 0.5s;
}
footer .footer-box .btn-pagetop a:hover{
	background: #004492;
}
footer .footer-box .btn-pagetop a:hover:before{
	top: 7px;
}

@media screen and (max-width: 1000px){
    footer .footer-box{
        width: 84%;
    }
	footer .footer-box ul li{
		font-size: 1.024vw;
	}
	footer .footer-box ul li:after{
		padding: 0 0 0 1vw;
	}
}
@media screen and (max-width: 820px){
	footer .footer-box ul{
		display: none;
	}
}
@media screen and (max-width: 768px){
    footer .footer-box .logo{
        width: 53.3vw;
    }
}


/* --------------------------------------------------------------------------- */
/* Top */
/* --------------------------------------------------------------------------- */

.top .greetings{
    margin: 20px 0 40px;
    padding: 0;
}
.top .greetings .greetings-box{
    display: flex;
	justify-content: flex-end;
	flex-direction: row-reverse;
	align-items: flex-end;
}
.top .greetings .greetings-box div{
	width: 340px;
	margin: 0 0 0 120px;
}
.top .greetings .greetings-box div div{
	margin: 0 auto;
    width: 100%;
}
.top .greetings .greetings-box div h1{
    margin: 0 0 30px;
    font-size: 32px;
    font-weight: 500;
    line-height: 1;
}
.top .greetings .greetings-box div p{
    margin: 0 0 1.6em;
    font-size: 14px;
    font-weight: 400;
    line-height: 2;
}
.top .greetings .greetings-box div p.sign{
    margin: 30px 0 0;
    font-size: 13px;
    line-height: 1.875;
}
.top .greetings .greetings-box div p.sign span{
    font-size: 20px;
}
.top .greetings .greetings-box div .purpose{
	border: solid 1px #ccc;
    width: 80%;
    text-align: center;
    margin: 0 auto;
}
.top .greetings .greetings-box figure{
	width: 44.73vw;
	min-width: 570px;
	margin: 0;
	text-align: right;
	position: relative;
    margin-bottom: 5px;
}
.top .greetings .greetings-box figure:before{
	content: "";
	display: block;
	width: 100%;
	height: 260px;
	background: #f3f7f9;
	position: absolute;
	bottom: 0;
	left: 0;
}
.top .greetings .greetings-box figure img{
	width: 250px;
	height: auto;
	margin: 0;
	vertical-align: bottom;
	position: relative;
	z-index: 1;
    margin-right: 50px;
}
.top .greetings .greetings-box figure.newyear img{
	width: 540px;
    margin-right: -80px;
}

/* fade-img */
.fade-img {
    overflow: hidden;
}
.inner-block {
width: 600px;
margin: 0 auto;
position:relative;
}
.fade-img-box {
width: 500px;
height: 350px;
margin-left: auto;
margin-top: 10px;
position:relative;
}

.fade-img-box img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit:cover;
}

.top .object{
    position: absolute;
    z-index: -1;
}

.top .business{
}
.top .business .business-box{
    margin: 0 auto 65px;
}
.top .business .business-box .flex-box{
    justify-content: space-between;
}
.top .business .business-box .flex-box div{
    width: 30.5%;
}
.top .business .business-box .flex-box div figure{
    margin: 0 0 25px;
}
.top .business .business-box .flex-box div figure img{
    vertical-align: bottom;
}
.top .business .business-box .flex-box div p{
    width: 82%;
	min-height: 74px;
    margin: 0 auto 30px;
    text-align: justify;
	box-sizing: border-box;
}
.top .business .business-box .flex-box div a{
	color: #000;
	text-decoration: none;
}
.top .videos .business-box .flex-box div{
    width: 32.5%;
}

.pickup{
    margin: 0 auto 80px;
    justify-content: space-between;
}
.pickup figure{
    width: 360px;
}
.pickup div{
    width: 580px;
}
.pickup div p{
	font-size: 14px;
    text-align: justify;
    letter-spacing: 0;
}
.pickup div p.date,
.topics-box div p.date{
    margin: 0 0 20px;
    font-family: 'Roboto', sans-serif;
    font-size: 14px;
    font-weight: 400;
    text-align: left;
    letter-spacing: 0.02em;
    color: #a0a0a0;
}
.pickup div p.date span,
.topics-box div p.date span{
    display: inline-block;
    margin: 0 0 0 20px;
    padding: 3px 7px;
    font-family: 'YakuHanJP', 'Noto Sans JP', sans-serif;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 500;
    color: #fff;
    letter-spacing: 0;
    background: #ccc;
}
.pickup div h3{
    margin: 0 0 20px;
    font-size: 20px;
    font-weight: 500;
}

.top .news{
    padding: 90px 0 110px;
	background: #f3f7f9;
}
.top .news .news-box{
    margin: 0 auto 40px;
    justify-content: space-between;
}
.top .news .news-box h2{
    font-size: 20px;
    font-weight: 400;
    line-height: 1.35;
    color: #000;
}
.top .news .news-box h2 span{
    display: block;
    margin: 0 0 15px;
    font-family: 'Roboto', sans-serif;
    font-size: 50px;
    font-weight: 300;
    color: #d5e3ea;
}
.top .news .news-box ul{
    width: 700px;
    font-size: 0;
    list-style: none;
}
.top .news .news-box ul li{
    display:-webkit-box;
  	display:-ms-flexbox;
    display: flex;
    margin: 0 0 30px;
    padding: 0 0 30px;
    font-size: 15px;
    border-bottom: solid 1px #e6e6e6;
}
.top .news .news-box ul li span{
    margin: 0 40px 0 0;
    font-family: 'Roboto', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #a0a0a0;
}
.top .news .news-box ul li a{
    display: block;
    color: #000;
    text-decoration: none;
    trasition: color 0.3s;
}
.top .news .news-box ul li a:hover{
    color: #004492;
}
.top .news .link-03{
    margin: 0 0 0 auto;
}

@media screen and (max-width: 1000px){
    .top .business:before{
       top: 37%; 
    }
    .top .business .business-box{
        margin: 0 auto 10%;
    }
    
    .top .pickup{
        margin: 0 auto 7%;
    }
    .top .pickup figure,
    .top .pickup div{
        width: 48%;
    }
    .top .topics p{
        margin: 0 0 3%;
    }
    
    .top .news{
        padding: 0 0 6.7%;
    }
    .top .news .news-box{
        display: block;
		padding: 40px 0 0;
    }
    .top .news .news-box h2{
        margin: 0 0 25px;
    }
    .top .news .news-box ul{
        width: 100%;
    }
}

@media screen and (max-width: 820px){
    .top .greetings{
        margin: 0 0 50px;
        padding: 0;
    }
    .top .greetings .greetings-box{
        display: block;
        padding: 30px 0 0;
    }
	.top .greetings .greetings-box div {
		width: 100%;
		margin: 0;
	}
    .top .greetings .greetings-box div div{
        width: 80%;
    }
    .top .greetings .greetings-box div div.rensa{
        margin-top: 0;
    }
	.top .greetings .greetings-box div h1{
        margin: 0 0 20px;
        font-size: 22px;
        font-weight: 500;
        line-height: 1;
    }
    .top .greetings .greetings-box div p{
        margin: 0 0 1em;
        font-size: 13px;
        font-weight: 400;
        line-height: 2.235;
    }
    .top .greetings .greetings-box div p.sign{
        margin: 20px 0 0;
        font-size: 11px;
        line-height: 1.875;
    }
    .top .greetings .greetings-box div p.sign span{
        font-size: 16px;
    }
    .top .greetings .greetings-box div .purpose{
        width: 50%;
        margin:0 auto;
    }
    .top .greetings .greetings-box figure{
        width: 100%;
        margin: 20px 0;
		padding: 0;
        text-align: left;
    }
    .top .greetings .greetings-box figure.newyear{
        text-align: center;
    }
    .top .greetings .greetings-box figure:before{
        content: "";
        display: block;
        width: 100%;
        height: 160px;
        background: #f3f7f9;
        position: absolute;
        bottom: 0;
        left: 0;
    }
    .top .greetings .greetings-box figure img{
        width: 150px;
        height: auto;
        margin: 0 0 0 8%;
        vertical-align: bottom;
        position: relative;
        z-index: 1;
    }
    .top .greetings .greetings-box figure.newyear img{
        width: 70%;
        margin: 20px auto 0 auto;
    }
    .top .business .business-box .flex-box{
        display: block;
    }
    .top .business .business-box .flex-box div{
        width: 100%;
		margin: 0 0 40px;
    }
    .top .business .business-box .flex-box div.youtube{
		margin: 0 0 20px;
    }
    .top .business .business-box .flex-box div h3{
        font-size: 20px;
    }
    .top .business .business-box .flex-box div p{
        width: 96%;
		min-height: inherit;
        margin: 0 auto 20px;
    }
    .top .business::before{
        height: 88%;
        top: 53.3vw;
    }
    .top .business .business-box{
        margin: 0 auto 60px;
    }
    .top .topics p{
        margin: 0 0 10.6vw;
    }
    .top .pickup{
        display: block;
        margin: 0 0 16vw;
    }
    .top .pickup figure,
    .top .pickup div{
        width: 100%;
    }
    .top .pickup figure{
        margin: 0 0 20px;
    }
    .top .pickup div p.date{
        margin: 0 0 10px;
    }
    .top .pickup div h3{
        margin: 0 0 10px;
        font-size: 20px;
    }
    .top .pickup div p{
        margin: 0 0 20px;
    }
    .top .news .news-box ul li{
        display: block;
        margin: 0 0 20px;
        padding: 0 0 20px;
    }
    .top .news .news-box ul li span{
        margin: 0;
    }
	.pickup div p.date span,
	.topics-box div p.date span{
		margin: 0;
	}
}

@media screen and (max-width: 768px){
	.top .greetings .greetings-box div .purpose{
        width: 70%;
    }
    .top .greetings .greetings-box figure{
        min-width: inherit;
    }
    .top .greetings .greetings-box figure.newyear img{
        width: 84%;
        margin-top: 0;
    }
	.top .news .news-box ul li{
        margin: 0 0 4vw;
        padding: 0 0 4vw;
    }
	.top .pickup div h3{
        font-size: 4.8vw;
    }
}

/* --------------------------------------------------------------------------- */
/* Single page -免責事項ページなど- */
/* --------------------------------------------------------------------------- */

.page header{
    margin: 0 auto 70px;
}

.page p{
    text-align: justify;
}

ul.list-01 li{
    margin: 0 0 0 1.3em;
    list-style: inside none;
}
ul.list-01 li:before{
    content: "・";
    display: inline-block;
    text-indent: -1.3em;
}
ul.list-01.dot-none li:before{
    content: "";
}
ol.list-02 li{
    margin: 0 0 0 1.3em;
    list-style-position: inside;
    text-indent: -1.3em;
}
ol.list-02 li ul.list-01 li:before{
    text-indent: 0;
}


/* --------------------------------------------------------------------------- */
/* Business */
/* --------------------------------------------------------------------------- */

.business .wrapper{
    padding: 148px 0 1px;
    background: #f3f7f9;
}
/*
.business-cert .wrapper{
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0)1%, rgba(254, 247, 232, 1)10%);
}

@media screen and (max-width: 768px){
    .business .wrapper{
        background: linear-gradient(to bottom, rgba(255, 255, 255, 0)10%, rgba(254, 247, 232, 1) 30%);
    }
    .business-cert .wrapper{
        background: linear-gradient(to bottom, rgba(255, 255, 255, 0)1%, rgba(254, 247, 232, 1)5%);
    }
}*/

@media screen and (max-width: 768px){
	.business .wrapper{
		padding: 100px 0 40px;
	}
}


/* --------------------------------------------------------------------------- */
/* Company */
/* --------------------------------------------------------------------------- */

.wrapper-history{
    padding: 100px 0 6.7%;
    background: #f3f7f9;
}

.company .wrapper{
    padding: 100px 0 6.7%;
    background: #f3f7f9;
}

.history{
    margin-bottom: 20px;
    align-items: flex-start;
    flex-wrap: wrap;
    position: relative;
}
.history.last{
    margin-bottom: 120px;
}
.history p.year{
    width: 100px;
    margin: 0 30px 0 0;
    font-family: 'Roboto', sans-serif;
    font-size: 40px;
    color: #d5e3ea;
    line-height: 1.25;
    position: relative;
}
.history:after{
    content: "";
    display: block;
    width: 1px;
    height: calc(100% - 50px);
    background: #d5e3ea;
    position: absolute;
    left: 110px;
    bottom : 0;
}
.history div{
    width: 86%;
}

.history div > div{
    width: 100%;
}

.history div h2{
    font-size: 20px;
    font-weight: 500;
    color: #000;
}

.history div p{
    width: 96%;
    margin-bottom: 30px;
    font-size: 15px;
    line-height: 2;
    text-align: justify;
    word-break: break-all;
}
.history div ul{
    margin-bottom: 30px;
    list-style: none;
}
.history div ul li{
    margin: 0 0 1em 1em;
    font-size: 15px;
    line-height: 2;
    text-indent: -1em;
}
.history div ul li:before{
    content: "・";
    display: inline;
}
.history .box-l{
    width: 55%;
    float: left;
}
.history figure{
    width: 360px;
    float: right;
}

.company .character{
    margin: 0 auto 120px;
    justify-content: space-between;
}
.company .character div{
    width: 54%;
}
.company .character div p{
    margin-bottom: 1em;
    font-size: 16px;
    line-height: 2;
    text-align: justify;
}
.company .character figure{
    width: 45%;
}

.company .book{
    margin: 0 0 50px;
    padding: 50px;
    justify-content: space-between;
    flex-wrap: wrap;
}
.company .book figure{
    width: 15.6%;
}
.company .book div{
    width: 81%;
}
.company .book div .flex-box{
    width: 100%;
    justify-content: space-between;
}
.company .book div .flex-box div{
    width: 48%;
}
.company .book div .flex-box div p{
    letter-spacing: 0;
}
.company .book div .flex-box div p a{
    color: #004492;
    text-decoration: underline;
}
.company .book div .flex-box div p a:hover{
    text-decoration: none;
}
.box-w + .ttl-05{
    margin: 100px 0 15px;
}
.company .book .introduction{
    width: 100%;
    margin: 40px 0 0;
}
.company .book .introduction dt{
    width: 10%;
    font-weight: 500;
    color: #000;
}
.company .book .introduction dd{
    width: 90%;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.76;
    text-align: justify;
}
.company .book .introduction dd h4{
    font-size: 14px;
    font-weight: 500;
}

.column-2.site div.flex-box{
    width: 100%;
    margin: 0;
    padding: 0;
    justify-content: space-between;
    flex-wrap: wrap;
}
.column-2.site .flex-box div{
    width: 52.6%;
    margin: 0;
    padding: 0;
}
.column-2.site .flex-box div p{
    font-size: 14px;
    color: #000;
    text-align: justify;
}
.column-2.site .flex-box figure{
    width: 42%;
    margin: 0;
}

.corporate{
    width: 800px;
    margin: 0 auto 120px;
}

.president-box{
	margin: 1em auto 0;
	justify-content: space-between;
}
.president-box div{
	margin: 0 20px 0 0;
	flex: 1;
}
.president-box div p{
	margin: 0 0 1em;
	letter-spacing: 0.05em;
	text-align: justify;
}
.president-box div p:last-of-type{
	margin: 0;
}
.president-box figure{
	width: 200px;
}

.access{
    margin: 0 auto;
}
.access iframe{
    width: 100%;
    height: 480px;
    border: none;
}
.access h4{
     margin: 0 0 20px;
    font-size: 16px;
    font-weight: 500;
}
.access ul{
    margin: 0 0 20px;
}
.access ul li{
    margin-left: 1em;
    text-indent: -1em;
    list-style: none;
}
.access ul li:before{
    content: "・";
    display: inline;
}

@media screen and (max-width: 1000px){
    .history div{
        width: 80%;
    }
    .history figure{
        width: 45%;
    }
    .corporate{
        width: 80%;
        margin: 0 auto 60px;
    }
}

@media screen and (max-width: 820px){
    .column-2.site div.flex-box figure,
    .column-2.site div.flex-box div{
        width: 100%;
        margin: 0 0 20px;
    }
	.company .character{
		padding-top: 40px;
	}
	
    .company .wrapper{
        background: #f3f7f9;
    }
	
	.company .wrapper{
		padding: 40px 0 6.7%;
	}
    .company .wrapper-history{
        padding: 148px 0 6.7%;
    }
    .company .book{
        margin: 0 0 25px;
    }
    .box-w + .ttl-05{
        margin: 25px 0 15px;
    }
    .history.last{
        margin-bottom: 60px;
    }
    .history:after{
        left: 5px;
    }
    .history p.year{
        font-size: 36px;
    }
    .history div{
        width: calc(100% - 20px);
        padding: 0 0 0 20px;
    }
    .history div > div{
        width: 100%;
        padding: 0;
    }
    .history div h2{
        font-size: 18px;
    }
    .history div p{
        font-size: 14px;
    }
    .history .box-l{
        width: 100%;
        float: none;
    }
    .history figure{
        width: 100%;
        margin: 0 0 30px;
    }
    .company .character{
        display: block;
        margin: 0 auto;
    }
    .company .character div,
    .company .character figure{
        width: 100%;
        margin: 0 0 30px;
    }
    .company .book{
        padding: 30px;
    }
    .company .book div .flex-box{
        display: block;
    }
    .company .book .ttl-02{
        width: 100%;
    }
    .company .book figure{
        width: 100%;
		margin: 0 0 10px;
    }
    .company .book div{
        width: 100%;
    }
    .company .book div .flex-box div{
        width: 100%;
    }
    .company .book .introduction{
        display: block;
        margin: 20px 0 0;
    }
    .company .book .introduction dt,
    .company .book .introduction dd{
        width: 100%;
    }
    .column-2.site div.flex-box{
        margin: 0 0 60px;
    }
    .company .character div p{
        font-size: 14px;
    }
    .corporate{
        width: 100%;
        margin: 0 auto 40px;
    }
    
    .access{
        margin: 0 auto 60px;
    }
    .access iframe{
        height: 25vh;
    }
}

@media screen and (max-width: 768px){
	.company .character{
		padding-top: 0;
	}
	.sp-no-flex.president-box div{
        margin: 0 0 40px;
        flex: 1;
    }
    .president-box figure{
        width: 200px;
		margin: 0 auto;
    }
}


/* --------------------------------------------------------------------------- */
/* Solution 企業・教育機関の方へ */
/* --------------------------------------------------------------------------- */
.solution .wrapper{
    padding: 148px 0 1px;
    background: #f3f7f9;
}
.solution .solution-box{
    margin-bottom: 40px;
    padding: 50px;
}
.solution .solution-box .flex-box{
    justify-content: space-between;
}
.solution .solution-box .flex-box div{
    width: 46%;
}
.solution .solution-box .flex-box div:last-of-type{
    width: 48%;
}
.solution .solution-box .flex-box div .flex-box{
    width: 100%;
    margin-bottom: 40px;
}
.solution .solution-box .flex-box div .flex-box p{
    width: 57%;
}
.solution .solution-box .flex-box div .flex-box figure{
    width: 38%;
}
.communication{
    margin-bottom: 120px;
}
.communication h2{
    margin: 0 0 30px;
    padding: 0 0 20px;
    text-align: center;
    position: relative;
}
.communication h2 span{
    font-size: 25px;
    line-height: 1;
    color: #004492;
    text-align: center;
}
.communication h2 span:before {
    content: "";
    display: inline-block;
    width: 24px;
    height: 23px;
    margin-right: 10px;
    vertical-align: middle;
    background: url(../img2/icn_mail.jpg) left top / 100% auto no-repeat;
}
.communication h2:after{
    content: "";
    display: block;
    width: 48px;
    height: 1px;
    margin: auto;
    background: #004492;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
}
.communication p{
    margin: 0 0 50px;
    font-size: 16px;
    line-height: 2;
    text-align: justify;
    word-break: break-all;
}
.communication a{
    display: block;
    padding: 40px; 
    text-align: center;
    text-decoration: none;
    background: #004492;
    opacity: 1;
    transition: opacity 0.3s;
}
.communication a span{
    font-size: 20px;
    font-weight: 500;
    color: #fff;
    line-height: 1;
    position: relative;
}
.communication a span:first-of-type{
    padding: 5px 20px 5px 10px;
    color: #e4e28f;
    border-top: solid 1px #e4e28f;
    border-bottom: solid 1px #e4e28f;
}
.communication a span:nth-of-type(2){
    display: inline-block;
    width: 65px;
    height: 65px;
    margin: 0 40px 0 -15px;
    padding: 21px 0 0;
    font-size: 20px;
    color: #004492;
    border-radius: 65px;
    background: #e4e28f;
}
.communication a span:last-of-type{
    display: inline-block;
    padding: 0 87px 0 0;
}
.communication a span:last-of-type:after{
    content: "";
    display: inline-block;
    width: 67px;
    height: 7px;
    margin: auto;
    background: url("../img2/icn_arrow_w.png") left top / 100% auto no-repeat;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    transition: right 0.3s;
}
.communication a:hover{
    opacity: 0.95;
}
.communication a:hover span:last-of-type:after{
    right: -5px;
}

@media screen and (max-width: 768px){
    
    .communication{
        margin: 0 0 60px;
    }
    .communication h2{
        margin: 0 0 20px;
    }
    .communication h2 span{
        font-size: 20px;
    }
    .communication p{
        margin: 0 0 20px;
        font-size: 14px;
    }
    .communication a{
        padding: 20px;
    }
    .communication a span{
        font-size: 16px;
    }
    .communication a span:nth-of-type(2){
        margin: 0 0 10px -15px;
        padding: 18px 0 0;
        font-size: 18px;
        width: 55px;
        height: 55px;
        border-radius: 55px;
    }
    .communication a span:last-of-type{
        padding: 0 75px 0 0;
    }
    .solution .solution-box .flex-box{
        display: block;
    }
    .solution .solution-box .flex-box div,
    .solution .solution-box .flex-box div .flex-box p,
    .solution .solution-box .flex-box div .flex-box figure,
    .solution .solution-box .flex-box div:last-of-type{
        width: 100%;
    }
    .solution .solution-box{
        padding: 5% 5% 20%;
        position: relative;
    }
    .solution .solution-box .flex-box div .flex-box p{
        margin-bottom: 20px;
    }
    .solution .solution-box .flex-box p.txt-r{
        position: absolute;
        right: 5%;
        bottom: 3%;
    }
}

@media screen and (max-width: 320px){
    .communication a span:last-of-type{
        padding: 0 0 25px;
    }
    .communication a span:last-of-type:after{
        left: 0;
        top: inherit;
    }
}


/* --------------------------------------------------------------------------- */
/* Tpocis */
/* --------------------------------------------------------------------------- */

.topics .wrapper,
.page .wrapper{
    padding: 100px 0 6.7%;
    background: #f3f7f9;
}

.topics-box{
    margin: 0 auto 10px;
    justify-content: space-between;
    flex-wrap: wrap;
}
.topics .topics-box{
    justify-content: flex-start;
}
.topics-box div{
    width: 31%;
}
.topics .topics-box div{
    margin: 0 0 7% 3.5%;
}
.topics .topics-box div:nth-of-type(3n+1){
    margin: 0 0 7%;
}
.topics-box div figure{
    margin: 0 0 20px;
}
.topics-box div figure img{
    vertical-align: bottom;
}
.topics-box div h3{
    margin: 0 0 20px;
    font-size: 16px;
    font-weight: 500;
}
.topics-box div p.date{
    margin: 0 0 10px;
}
.topics img{
	width: auto;
	max-width: 100%;
	height: auto;
	margin: 0 auto;/*iwama追加*/
  	display: block;/*iwama追加*/
}

.pager{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    max-width: 800px;
    margin: 0 auto 100px;
    justify-content: center;
    list-style: none;
    font-size: 0;
    flex-wrap: wrap;
}
.pager li{
    margin: 0 5px 5px;
}
.pager li span,
.pager li a{
    display: block;
    width: 45px;
    height: 45px;
    padding: 12px 0 0;
    font-family: 'Roboto', sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
    text-align: center;
    border: solid 1px #000;
    border-radius: 45px;
    color: #000;
    background: #fff;
    text-decoration: none;
    transition: background 0.3s;
}
.pager li span,
.pager li a.active,
.pager li a:hover{
    background: #f2f2f2;
}
.pager li span,
.pager li a.active{
    background: #f2f2f2;
}

.report-single{
    /*justify-content: space-between;*/
}
.report-single .ttl{
    /*width: 140px;*/
	margin: 20px 0 40px;
}
.report-single .ttl .date{
	display: inline-block;
    margin-bottom: 40px;
    padding: 1px 20px;
    font-size: 14px;
    color: #fff;
    text-align: center;
    background: #ccc;
    border-radius: 25px;
    /*margin: 0 0 30px;
	margin: 0;
    padding: 0;
    font-family: 'Roboto', sans-serif;
    font-size: 17px;
    font-weight: 400;
    text-align: center;
    letter-spacing: 0.01em;
    color: #004492;
    background: #fff;
    border-radius: 30px;*/
}
.report-single .ttl h1,
.report-single .ttl h2{
    /*display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    justify-content: center;
    height: 1200px;
	position: relative;*/
    font-size: 35px;
    font-weight: 500;
    line-height: 1.5;
}
.report-single .ttl h1 span,
.report-single .ttl h2 span{
    display: inline-block;
    /*height: 1200px;
    font-family: 'Noto Sans JP', sans-serif;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;*/
}
/*.report-single .ttl h2 span.number{
    height: 1.75em;
    margin: -10px auto -5px;
    text-align: center;
    text-combine-upright: all;
    font-style: normal;
    text-orientation: sideways;
    writing-mode: horizontal-tb;
    -webkit-writing-mode: horizontal-tb;
    text-combine-upright: all;
}*/
.report-single .report-content{
    /*width: 800px;*/
	margin: 0 auto;
}
.report-single .report-content p{
    font-size: 16px;
    text-align: justify;
}
.report-single .report-content figure{
    /*margin: 0 0 50px;*/
}

.share_space{
	margin: 0 0 40px;
}
.copy-btn{
    display: inline-block;
    padding: 5px 10px 5px 25px;
    font-size: 12px !important;
    line-height: 1 !important;
    color: #fff;
    background: url("../img2/icn_copy.png") 10px center / 12px auto no-repeat #a5a5b1;
    border-radius: 3px;
    cursor: pointer;
    vertical-align: top;
}

.box-program h3{
    margin: 0 auto -1px;
    padding: 20px 0;
    font-size: 15px;
    font-weight: 500;
    text-align: center;
    background: #f7f7f7;
    border: solid 1px #d8d8d8;
}
.box-program .flex-box{
    margin: 0 auto -1px;
    padding: 30px;
    border: solid 1px #d8d8d8;
    justify-content: space-between;
}
.box-program .flex-box:last-of-type{
    margin: 0 auto 80px;
}
.box-program .flex-box div{
    width: 59%;
}
.box-program .flex-box div h4{
    font-size: 17px;
    fontw-eight: 500;
}
.box-program .flex-box div p{
    margin: 0;
    font-size: 15px;
    lie-height: 2;
}
.box-program .flex-box figure{
    width: 30%;
    margin: 0;
}

.report .column-2 div{
    padding: 0;
}
.report .column-2 div figure{
    width: 100%;
    margin: 0;
}
.report .column-2 div figure figcaption{
    margin: 10px 0;/*15px 0;*/
    font-size: 14px;
    /*color: #004492;*/
}

.single-pager{
    margin: 0 auto 120px;
    justify-content: space-between;
}
.single-pager.content-center{
    justify-content: center;
}
.single-pager li{
    display: block;
    list-style: none;
}
.single-pager li a{
    display: block;
}
.single-pager li a{
    font-family: 'Roboto', sans-serif;
    font-size: 14px;
    color: #000;
    text-decoration: none;
    position: relative;
}
.single-pager li.next a:after{
    content: "";
    display: inline;
    width: 26px;
    height: 7px;
    margin: auto;
    background: url("../img2/icn_arrow_next.png") left top / 100% auto no-repeat;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
}
.single-pager li a span{
    position: relative;
    transition: color 0.4s cubic-bezier(.215,.61,.355,1);
}
.single-pager li.next a span{
    padding: 0 37px 0 0;
}

.single-pager li.prev a:after{
    content: "";
    display: inline;
    width: 26px;
    height: 7px;
    margin: auto;
    background: url("../img2/icn_arrow_prev.png") left top / 100% auto no-repeat;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
}
.single-pager li.prev a span{
    padding: 0 0 0 37px;
    position: relative;
    transition: color 0.4s cubic-bezier(.215,.61,.355,1);
}
.single-pager li a span:after{
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #000;
    position: absolute;
    left: 0;
    bottom: -9px;
    transition: background-color 0.3s cubic-bezier(0.215,0.61,0.355,1);
}
.single-pager li a:hover span:after{
    -webkit-animation: hover_line 0.6s cubic-bezier(0.19,1,0.22,1);
    animation: hover_line 0.6s cubic-bezier(0.19,1,0.22,1);
    animation-fill-mode: none;
    -webkit-animation-fill-mode: forwards;
}
.single-pager li.prev a:hover span:after{
    -webkit-animation: hover_line_reverse 0.6s cubic-bezier(0.19,1,0.22,1);
    animation: hover_line_reverse 0.6s cubic-bezier(0.19,1,0.22,1);
    animation-fill-mode: none;
    -webkit-animation-fill-mode: forwards;
}

@-webkit-keyframes hover_line_reverse {
  0% {
      -webkit-transform-origin:left center;
      transform-origin:left center;
      -webkit-transform:scaleX(1);
      transform:scaleX(1)
  }
  50% {
      -webkit-transform-origin:left center;
      transform-origin:left center;
      -webkit-transform:scaleX(0);
      transform:scaleX(0)
  }
  51% {
      -webkit-transform-origin:right center;
      transform-origin:right center;
      -webkit-transform:scaleX(0);
      transform:scaleX(0)
  }
  100% {
      -webkit-transform-origin:right center;
      transform-origin:right center;
      -webkit-transform:scaleX(1);
      transform:scaleX(1)
  }
}

@media screen and (max-width: 768px){
    
	.topics .wrapper{
		padding: 60px 0 6.7%;
	}
	
    .topics-box div p.date{
        margin: 0 0 10px;
    }
    .topics-box{
        flex-wrap: wrap;
    }
    .topics .topics-box{
        justify-content: space-between;
    }
    .topics .topics-box div,
    .topics .topics-box div:nth-of-type(3n+1){
        width: 46%;
        margin: 0 0 40px;
    }
    .top .topics-box div:last-of-type{
        display: none;
    }
    .topics-box div figure{
        margin: 0 0 10px;
    }
    .topics-box div p.date{
        font-size: 3.46vw;
    }
    .topics-box div p.date span{
        margin: 0;
        font-size: 12px;
    }
    .topics-box div h3{
        font-size: 14px;
        line-height: 1.6;
    }
    
    /*.report-single{
        display: block;
    }
    .report-single .ttl,
    .report-single .report-content{
        width: 100%;
    }*/
	.report-single .ttl{
		margin: 0 0 20px;
	}
    .report-single .ttl .date{
        display: inline-block;
		 font-size: 14px;
        /*margin: 0 0 20px;
        padding: 0 15px;
		text-align: left;*/
    }
    .report-single .ttl h1,
    .report-single .ttl h2{
        /*height: inherit;
		text-align: left;
        margin-bottom: 20px;*/
        font-size: 20px;
    }
    /*.report-single .ttl h2 span{
        height: auto;
        writing-mode: horizontal-tb;
        -webkit-writing-mode: horizontal-tb;
    }*/
    .report-single .report-content p{
        text-align: justify;
        font-size: 14px;
    }
    .report-single .report-content figure{
        margin: 0 0 25px;
    }
	
	
    .box-program h3{
        margin: 0 auto -1px;
        padding: 20px 0;
        font-size: 15px;
        font-weight: 500;
        text-align: center;
        background: #f7f7f7;
        border: solid 1px #d8d8d8;
    }
    .box-program .flex-box{
        display: block;
        padding: 15px 10px 0;
    }
    .box-program .flex-box:last-of-type{
        margin: 0 auto 60px;
    }
    .box-program .flex-box div,
     .box-program .flex-box figure{
         width: 100%;
         margin: 0 0 20px;
    }
    .box-program .flex-box div h4{
        font-size: 16px;
    }
    .box-program .flex-box div p{
        font-size: 14px;
        lie-height: 1.75;
    }

    .report .column-2 div{
        margin: 0 0 30px;
        padding: 0;
    }
    .report .column-2 div figure{
        width: 100%;
        margin: 0;
    }
    .report .column-2 div figure figcaption{
        margin: 15px 0;
        font-size: 14px;
        color: #004492;
    }
    .pagser{
        max-width: inherit;
    }
    .pager li span,
    .pager li a{;
        width: 35px;
        height: 35px;
        padding: 10px 0 0;
        font-size: 14px;
        border-radius: 35px;
    }
    
    .single-pager{
        margin: 0 auto 60px;
    }
    .single-pager li a:after{
        width: 20px;
        height: 7px;
    }
    .single-pager li.next a span{
        padding: 0 28px 0 0;
    }

    .single-pager li.prev a:after{
        width: 20px;
        height: 7px;
    }
    .single-pager li.prev a span{
        padding: 0 0 0 28px;
    }
    .single-pager li a span:after{
        content: "";
        display: block;
        width: 100%;
        height: 1px;
        background-color: #000;
        position: absolute;
        left: 0;
        bottom: -9px;
        transition: background-color 0.3s cubic-bezier(0.215,0.61,0.355,1);
    }
}

@media screen and (max-width: 320px){
    .single-pager li a{
        font-size: 12px;
    }
}


/* --------------------------------------------------------------------------- */
/* Tpocis - Essay */
/* --------------------------------------------------------------------------- */

.new-essay{
    margin-bottom: 120px;
    position: relative;
}
.new-essay:after{
    content: "";
    display: block;
    width: 90%;
    height: 100%;
    background: #fff;
    position: absolute;
    top: 62px;
    right: 0;
    z-index: 0;
}
.new-essay .flex-box{
    width: 96%;
    position: relative;
    top: 0;
    z-index: 1;
}

.new-essay .flex-box figure{
    width: 230px;
    margin: 0 50px 0 0;
}
.new-essay .flex-box div{
    width: 67%;
}
.new-essay .flex-box div,
.essay-list .flex-box p.date{
    font-family: 'Roboto', sans-serif;
    font-size: 14px;
    color: #666;
}
p.num{
    margin-bottom: 40px;
    padding: 0 0 5px;
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    color: #004492;
    letter-spacing: 0;
    line-height: 1;
    font-style: italic; 
}
.new-essay .flex-box p.num{
    margin-top: 24px;
}
.new-essay .flex-box p.icn-new + p.num{
    margin-top: 0;
}
.name{
    margin-bottom: 40px;
    padding: 0 0 0 15px;
    font-size: 16px;
    letter-spacing: 0;
    color: #000;
    border-left: solid 1px #004492;
}
.name span{
    display: block;
    font-size: 15px;
    color: #004492;
}
.new-essay .flex-box p{
    margin-bottom: 30px;
    line-height: 1.7;
    text-align: justify;
}
.new-essay .flex-box p.txt-r{
    margin-bottom: 0;
    text-align: right;
}
.new-essay .flex-box p.num span{
    font-size: 24px;
    border-bottom: solid 1px #004492;
}
.new-essay .flex-box p.icn-new{
    display: inline-block;
    margin: 0;
    padding: 5px 20px;
    font-size: 16px;
    font-style: normal;
    line-height: 1;
    color: #fff;
    background: #dcd96c;
}
.new-essay .flex-box h3{
    margin-bottom: 20px;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.3;
    color: #004492;
}
.essay-list{
    margin-bottom: 30px;
    position: relative;
}
.essay-list .flex-box p.num span{
    font-size: 20px;
    border-bottom: solid 1px #004492;
}
.essay-list .flex-box{
    justify-content: space-between;
    flex-wrap: wrap;
}
.essay-list .flex-box div{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 48%;
    height:230px;
    margin-bottom: 100px;
    padding: 0 30px 0 0;
    position: relative;
    left: 0;
    bottom: 0;
    z-index: 1;
}

.essay-list .flex-box div:after{
    content: "";
    display: block;
    width: 96%;
    height: 220px;
    background: #fff;
    position: absolute;
    top: 24px;
    right: 0;
    z-index: 0;
}

.essay-list .flex-box div figure{
    width: 130px;
    margin: 0 20px 0 0;
    position: relative;
    z-index: 1;
}
.essay-list .flex-box div > div{
    display: block;
    width: 65%;
    margin-bottom: 0;
    padding: 0;
    position: static;
}
.essay-list .flex-box div > div:after{
    content: none;
}
.essay-list .flex-box div > div .num{
    margin-bottom: 20px;
}
.essay-list .flex-box div > div .date{
    position: absolute;
    top: -5px;
    right: 0;
}
.essay-list .flex-box div > div .name{
    font-size: 14px;
}
.essay-list .flex-box div > div .txt-r{
    margin: 0;
}
.essay-list .flex-box div > div p{
    margin: 0 0 25px;
}
.essay-list .flex-box div > div h3{
    margin-bottom: 20px;
    font-size: 18px;
    font-weight: 500;
    color: #004492;
    letter-spacing: 0;
    line-height: 1.3;
}

@media screen and (max-width: 1000px){
    .essay-list .flex-box div:after{
        height: calc(100% + 11.5px);
        top: 23px;
    }
}

@media screen and (max-width: 768px){
    .new-essay .flex-box{
        width: 100%;
        flex-wrap: wrap;
    }
    .new-essay .flex-box div{
        width: 100%;
        padding-left: 10px;
    }
    .new-essay .flex-box figure{
        width: 100px;
        margin: 0;
        position: absolute;
        top: 0;
        left: 0;
    }
    .new-essay .flex-box p.icn-new{
        padding: 5px 10px;
        font-size: 12px;
    }
    .new-essay .flex-box p{
        width: 79%;
        margin: 0 auto 20px;
    }
    .new-essay .flex-box p.icn-new,
    .new-essay .flex-box p.num,
    .new-essay .flex-box h3{
        width: auto;
        margin-left: 110px;
    }
    .new-essay .flex-box p.num{
        margin-bottom: 20px;
    }
    .new-essay .flex-box p.num span{
        font-size: 16px;
    }
    .new-essay .flex-box h3{
        padding-right: 10%;
        font-size: 18px;
    }
    .new-essay::after{
        width: 97%;
        top: 47px;
    }
    .name span{
        font-size: 14px;
    }
    
    .essay-list .flex-box{
        display: block;
    }
    .essay-list .flex-box div{
        width: 100%;
        height: calc(100% + 11.5px); 
    }
    .essay-list .flex-box div figure{
        width: 100px;
        position: absolute;
        left: 0;
        top: 0;
    }
    .essay-list .flex-box div > div{
        width: 100%;
    }
    .essay-list .flex-box div > div .num,
    .essay-list .flex-box div > div h3{
        margin-left: 120px;
    }
    .essay-list .flex-box div > div .num span{
        font-size: 16px;
    }
    .essay-list .flex-box div > div h3{
        margin-bottom: 35px;
        min-height: 55px;
    }
    .essay-list .flex-box div > div .name{
        margin-left: 40px;
    }
    .essay-list .flex-box div::after{
        top: 18px;
    }
    
    .pager{
        margin: 0 auto 60px;
    }
}


/* --------------------------------------------------------------------------- */
/* Tpocis - Essay - single page */
/* --------------------------------------------------------------------------- */

body.essay-single{
    overflow-x: hidden;
}
body.essay-single .wrapper{
    padding: 30px 0 50px;
	background: #f3f7f9;
    /*background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(203, 225, 253, 0.5)7%, rgba(254, 239, 209, 0.5) 60%);*/
}
.essay{
    width: 900px;
    margin: 0 auto;
    padding: 30px 0;
    position: relative;
}
.essay-page-ttl{
    position: relative;
    left: -50px;
    z-index: 1;
}
.essay-page-ttl .num{
    margin: 20px 30px 0 0;
}
.essay-page-ttl .num span{
    padding-left: 10px;
    font-size: 20px;
    border-bottom: solid 1px #004492;
}
.essay-page-ttl h2{
    font-size: 35px;
    font-weight: 400;
    line-height: 1.3;
    color: #004492;
}
.essay-page-ttl h2 span{
    display: block;
    font-size: 18px;
    line-height: 1.3;
}
.essay-page-ttl figure{
    width: 200px;
    margin: 0 0 0 auto;
}
.essay:before{
    content: "";
    display: inline-block;
    width: 100vw;
    height: 126px;
    background: #f2f2f2;
    position: absolute;
    top: 0;
    left: -50px;
    z-index: 0;
}

.essay-ttl{
    width: 60%;
    margin: -110px 0 70px 50px;
}
.essay-ttl h2{
    margin-bottom: 20px;
    font-size: 25px;
    font-weight: 500;
    color: #004492;
    line-height: 1.5;
}

.essay-box{
    width: 800px;
    margin: 0 auto;
}
.essay-box p{
    margin: 0 0 1.5em;
    font-size: 16px;
    line-height: 2;
    text-align: justify;
}

.faq h2{
    margin-bottom: 20px;
    font-family: 'Roboto', sans-serif;
    font-size: 60px;
    font-weight: 400;
	color: #d5e3ea;
    text-align: center;
    letter-spacing: 0.2em;
}
.faq h2 span{
    font-size: 45px;
    vertical-align: baseline;
}
.faq-box{
    margin-bottom: 50px;
    padding: 60px;
    background: #fff;
}
.faq-box h3{
    margin-bottom: 50px;
    font-size: 25px;
    font-weight: 500;
    text-align: center;
    color: #004492;
}
.faq-box dt{
    margin: 0 0 20px;
    padding: 0 0 10px 45px;
    font-size: 18px;
    counter-increment: title;
    border-bottom: solid 1px #004492;
    position: relative;
}
.faq-box dt:before{
    content: "Q"counter(title);
    display: block;
    width: 45px;
    font-family: 'Roboto', sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1;
    color: #b3b3b3;
    position: absolute;
    left: 0;
    top: 5px;
}
.faq-box dd{
    margin-bottom: 50px;
    padding: 0 0 0 45px;
    font-size: 14px;
    line-height: 1.7;
    color: #004492;
    text-align: justify;
    position: relative;
}
.faq-box dd:last-of-type{
    margin-bottom: 0;
}
.faq-box dd:before{
    content: "A";
    display: inline-block;
    width: 45px;
    font-family: 'Roboto', sans-serif;
    font-size: 28px;
    line-height: 1;
    color: #004492;
    position: absolute;
    left: 0;
    top: 0;
}
.topics .content .faq-box dd p{
    margin: 0;
}
.faq-box dd p img{
    width: 100px;
}
.box-l{
    margin: 0 10px 10px 0;
    float: left;
}
.faq-box dd a{
    text-decoration: underline;
}
.faq-box dd a:hover{
    text-decoration: none;
}

.profile{
    margin-bottom: 70px;
    padding: 50px;
    background: #fff;
}

@media screen and (max-width: 1000px){
    .essay{
        width: 100%;
        padding: 20px 0;
    }
    .essay-page-ttl{
        width: 84%;
        margin: 0 auto;
        flex-wrap: wrap;
    }
    .essay-page-ttl h2{
        margin: 0 0 0 20px;
    }
    .essay-ttl{
        width: 84%;
        margin: -110px auto 70px;
    }
    .essay-box{
        width: 84%;
    }
    .essay-page-ttl{
        left: 0;
    }
    .essay::before{
        height: 152px;
        left: 8%;
    }
    .essay-page-ttl .num{
        width: 100%;
        margin: 0 0 20px;
    }
}


@media screen and (max-width: 820px){
    .faq-box{
        padding: 30px;
    }
    .essay-page-ttl .num{
        margin: 0 0 15px;
    }
    .essay-page-ttl .num span{
        padding-left: 15px;
        font-size: 16px;
    }
    .essay-page-ttl h2{
        font-size: 23px;
    }
    .essay-page-ttl h2 span{
        margin-bottom: 10px;
        font-size: 14px;
    }
    .essay-page-ttl figure{
        width: 100px;
    }
    .essay-ttl{
        margin: 20px auto 0;
    }
    .essay-ttl h2{
        font-size: 18px;
    }
    .essay::before{
        width: calc(100vw - 8%);
    }
/*    body.essay-single .wrapper{
        margin-top: -65%;
        padding: 65% 0 6.5%;
    }*/
    .faq{
        margin-bottom: 30px;
    }
    .faq h2{
        margin-bottom: 10px;
        font-size: 42px;
    }
    .faq h2 span{
        font-size: 32px;
    }
    .faq-box{
        margin-bottom: 10px;
    }
    .faq-box h3{
        margin-bottom: 30px;
        font-size: 18px;
    }
    .faq-box dt{
        padding: 0 0 15px 30px;
        font-size: 14px;
    }
    .faq-box dt::before{
        width: 35px;
        font-size: 16px;
    }
    .faq-box dd{
        margin-bottom: 25px;
        padding: 0 0 0 30px;
        font-size: 14px;
    }
    .faq-box dd::before{
        width: 35px;
        font-size: 18px;
        top: 5px;
    }
    .faq-box dd:last-of-type{
        margin-bottom: 0;
    }
    .profile{
        padding: 30px;
    }
    .name{
        margin-bottom: 20px;
    }
}

@media screen and (max-width: 320px){
    .essay-page-ttl h2{
        font-size: 18px;
    }
    .essay-page-ttl h2 span{
        font-size: 11px;
    }
    .essay-page-ttl figure{
        width: 80px;
    }
    .essay:before{
        height: 135px;
    }
}


/* --------------------------------------------------------------------------- */
/* Tpocis - Answer */
/* --------------------------------------------------------------------------- */

.answer-faq{
    margin-bottom: 20px;/*120px;*/
}
.answer-faq a{
    display: block;
    width: 100%;
    margin-bottom: 20px;
    padding: 30px 130px 30px 60px;
    font-size: 18px;
    font-weight:500;
    line-height: 1.5;
    text-decoration: none;
    background: #fff;
    position: relative;
}
.answer-faq a:last-of-type{
    margin-bottom: 0;
}
.answer-faq a:before{
    content: "Q";
    display: block;
    margin: auto;
    font-family: 'Roboto', sans-serif;
    font-size: 25px;
    font-weight: 400;
    color: #b3b3b3;
    position: absolute;
    left: 30px;
    top: 25px;
}
.answer-faq a:after{
    content: "";
    display: block;
    width: 72px;
    height: 7px;
    margin: auto;
    background: url("../img2/icn_arrow_bl02.png") right top / 100% auto no-repeat;
    position: absolute;
    right: 30px;
    top: 0;
    bottom: 0;
    transition: right 0.3s;
}
.answer-faq a:hover:after{
    right: 20px;
}
.answer-faq a span{
    display: block;
    padding: 5px 20px;
    font-family: 'Roboto', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    color: #fff;
    text-align: center;
    background: #dcd96c;
    position: absolute;
    top: -10px;
    left: 30px;
}

.answer h2{
    margin-bottom: 30px;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
    letter-spacing: 0;
    color: #004492;
}
.answer h2:after{
    content: "";
    display: block;
    width: 7px;
    height: 45px;
    margin: 15px auto 0;
    background: url(../img2/icn_arrow_bl_b.png) center top / 100% auto no-repeat;
}
.topics.answer .content .txt-que,
.topics.answer .content .txt-ans{
    font-family: 'Roboto', sans-serif;
    font-size: 60px;
    line-height: 1;
    letter-spacing: 0.02em;
}
.topics.answer .content .txt-que{
    margin: 60px 0 30px;
    color: #dfe9f4;
	text-align: center;
}
.topics.answer .content .txt-ans{
    margin-bottom: 40px;
    color: #dfe9f4;
    text-align: center;
}

.ans-box{
    margin-bottom: 70px;
}
.ans-box div{
    width: 91%;
    padding: 40px 60px;
    background: #f2f2f2;
    border-radius: 20px;
    position: relative;
}
.ans-box div:after{
    content: "";
    display: block;
    width: 37px;
    height: 33px;
    background: url("../img2/topics/answer/icn_answer_r.png") left top / 100% auto no-repeat;
    position: absolute;
    left: inherit;
    right: 60px;
    bottom: -33px;
}
.ans-box div ol{
    list-style: inside decimal;
}
.ans-box div ol li{
    margin-left: 1.3em;
    text-indent: -1.3em;
}
.ans-box .flex-box,
.ans-box:nth-of-type(2n+1) .flex-box{
    width: 100%;
    margin: -60px 0 0;
    padding: 0;
    background: none;
    align-items: flex-end;
    flex-wrap: wrap;
}
.ans-box .flex-box:after,
.ans-box:nth-of-type(2n+1) .flex-box:after{
    content: none;
}
.ans-box .flex-box .name{
    padding: 0;
    border-left: none;
}
.ans-box .flex-box.reverse .name{
    text-align: right;
}
.topics.answer .content .ans-box div p:last-of-type{
    margin: 0;
}
.ans-box .flex-box figure{
    width: 130px;
    margin: 0 20px 0 0; 
}
.ans-box .flex-box.reverse figure{
    width: 130px;
    margin: 0 0 0 20px; 
}
.ans-box:nth-of-type(2n+1) div{
    margin: 0 0 0 auto;
}
.ans-box:nth-of-type(2n+1) div:after{
    content: "";
    display: block;
    width: 37px;
    height: 33px;
    background: url("../img2/topics/answer/icn_answer_l.png") left top / 100% auto no-repeat;
    position: absolute;
    left: 60px;
    right: inherit;
    bottom: -33px;
}

@media screen and (max-width: 820px){
    .answer-faq{
        margin-bottom: 60px;
    }
    .answer-faq a{
        margin-bottom: 20px;
        padding: 20px 55px 20px 50px;
        font-size: 16px;
    }
    .answer-faq a:before{
        font-size: 22px;
        left: 20px;
        top: 15px;
    }
    .answer-faq a:after{
        width: 32px;
        height: 7px;
        background: url("../img2/icn_arrow_bl.png") right top / 100% auto no-repeat;
        right: 10px;
        top: 0;
        bottom: 0;
        transition: right 0.3s;
    }
    .answer-faq a:hover:after{
        right: 5px;
    }
    .answer-faq a span{
        padding: 5px 10px;
        font-size: 12px;
        top: -10px;
        left: 20px;
    }
    .ans-box{
        margin: 0 0 35px;
    }
    .ans-box div{
        padding: 20px;
        border-radius: 10px;
    }
    .ans-box .flex-box,
    .ans-box:nth-of-type(2n+1) .flex-box{
        margin: -10px 0 0;
    }
    .ans-box .flex-box figure,
    .ans-box .flex-box.reverse figure{
        width: 100px;
    }
    .ans-box div:after{
        right: 100px;
    }
    .ans-box:nth-of-type(2n+1) div:after{
        left: 100px;
    }
    .topics.answer .content .txt-que{
        margin: 30px 0;
		font-size: 40px;
    }
    .topics.answer .content .txt-ans{
        margin-bottom: 20px;
        font-size: 40px;
    }
    .answer h2{
		margin-bottom: 35px;
        font-size: 20px;
        text-align: left;
    }
}

@media screen and (max-width: 320px){
    .answer-faq a{
        margin-bottom: 15px;
        padding: 15px 55px 15px 45px;
        font-size: 13px;
    }
    .answer-faq a:before{
        font-size: 18px;
        left: 20px;
        top: 15px;
    }
}


/* --------------------------------------------------------------------------- */
/* Tpocis - Ad */
/* --------------------------------------------------------------------------- */

.ad-topics{
    margin: 0 auto;
}
.ad-topics figure{
    margin-bottom: 10px;
}
.ad-topics figure img{
    border: solid 1px #ccc;
}

.ad-topics p{
    margin: 0 0 5px;
    font-weight: 500;
}
.ad-topics p.date,
.promotion-list p.date{
    margin: 0;
    font-family: 'Roboto', sans-serif;
    font-size: 14px;
    font-weight: 400;
    text-align: left;
    letter-spacing: 0.02em;
    color: #004492;
}

.promotion-list{
    margin: 0 auto 80px;
}
.promotion-list figure{
    margin-bottom: 10px;
}
.promotion-list figure img{
    border: solid 1px #ccc;
}

.promotion-list p{
    margin: 0 0 5px;
    font-size: 16px;
    font-weight: 500;
}
.promotion-list p span{
    font-size: 14px;
}

.ad-single{
    justify-content: space-between;
}
.ad-single .ttl{
    width: 140px;
}
.ad-single .ttl .date{
    margin: 0 0 30px;
    padding: 0;
    font-family: 'Roboto', sans-serif;
    font-size: 17px;
    font-weight: 400;
    text-align: center;
    letter-spacing: 0.01em;
    color: #004492;
    background: #fff;
    border-radius: 30px;
}
.ad-single .ttl h2{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    justify-content: center;
    height: 1200px;
    font-size: 35px;
    font-weight: 500;
    position: relative;
}
.ad-single .ttl h2 span{
    display: inline-block;
    height: 1200px;
    font-family: 'Noto Sans JP', sans-serif;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
}
.ad-single .ttl h2 span.number{
    margin: -10px auto -5px;
    height: 1.75em;
    text-align: center;
    text-combine-upright: all;
    font-style: normal;
    text-orientation: sideways;
    writing-mode: horizontal-tb;
    -webkit-writing-mode: horizontal-tb;
    text-combine-upright: all;
}
.ad-single .ad-content{
    width: 800px;
    padding: 50px 0 0;
    background: #fff;
}
.ad-single .ad-content figure:first-of-type{
    max-width: 516px;
    margin: 0 auto 100px;
}
.ad-single .ad-content p{
    font-size: 16px;
}
.ad-single .ad-content figure{
    margin: 0 0 50px;
}

.movie{
    width: 640px;
    margin: 0 auto 60px;
}
.movie iframe{
    width: 640px;
    height: 360px;
    vertical-align: bottom;
}

@media screen and (max-width: 768px){
    .ad-single{
        display: block;
    }
    .ad-single .ttl,
    .ad-single .ad-content{
        width: 100%;
    }
    .ad-single .ttl .date{
        display: inline-block;
        margin: 0 0 20px;
        padding: 0 15px;
        font-size: 14px;
        text-align: left;
    }
    .ad-single .ttl h2{
        height: inherit;
        margin-bottom: 20px;
        font-size: 20px;
        text-align: left;
    }
    .ad-single .ttl h2 span{
        height: auto;
        writing-mode: horizontal-tb;
        -webkit-writing-mode: horizontal-tb;
    }
    .ad-single .ad-content p{
        text-align: justify;
    }
    .ad-single .ad-content figure{
        margin: 0 0 25px;
    }
    .ad-single .ad-content{
        padding: 25px 0 0;
    }
    .ad-single .ad-content figure:first-of-type{
        max-width: 68%;
        margin: 0 auto 50px;
    }
    .ad-single .ad-content figure{
        margin: 0 0 25px;
    }
    
    .movie{
        width: 100%;
        padding-top: 56.25%;
        position: relative;
    }
    .movie iframe{
        position: absolute;
        top: 0;
        right: 0;
        width: 100%!important;
        height: 100%!important;
        border: none;
    }
}

@media screen and (max-width: 320px){
    .promotion-list p{
        font-size: 14px;
    }
    .promotion-list p span{
        font-size: 12px;
    }
}


/* --------------------------------------------------------------------------- */
/* Tpocis - News */
/* --------------------------------------------------------------------------- */

.news-list{
    width: 800px;
    margin: 0 auto 80px;
    list-style: none;
    
}
.news-list li{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    flex-wrap: wrap;
    padding: 30px 0;
    border-bottom: solid 1px #e6e6e6;
}
.news-list li span{
    display: block;
    width: 16%;
    color: #004492;
}
.news-list li a{
    display: block;
    width: 84%;
    color: #000;
    text-decoration: none;
    transition: color 0.3s;
}
.news-list li a:hover{
    color: #004492
}

.news .date{
    display: inline-block;
    margin-bottom: 40px;
    padding: 1px 20px;
    font-size: 14px;
    color: #fff;
    text-align: center;
    background: #ccc;
    border-radius: 25px;
}

.news p{
    margin-bottom: 40px;
    font-size: 16px;
    line-height: 2;
    text-align: justify;
}

@media screen and (max-width: 1000px){
    .news-list{
        width: 100%;
    }
}

@media screen and (max-width: 768px){
    .news-list{
        margin: 0 auto 40px;
    }
    .news-list li{
        display: block;
        padding: 15px 0;
    }
    .news-list li span,
    .news-list li a{
        width: 100%;
    }
    .news .date{
        margin-bottom: 20px;
    }
}





/* --------------------------------------------------------------------------- */
/* Tpocis - competition - selection2 */
/* --------------------------------------------------------------------------- */

/* ▼▼横向きフロー図 */
.flow01 {
  padding-left: 0;
  display: flex;
  justify-content: center;
  gap: 30px;
}

.flow01 > li {
  list-style-type: none;
  /* width: 100%;
  max-width: 200px; */
  width: 180px;
  display: flex;
}

.flow01 > li .icon01 {
  line-height: 2;
  width: 2em;
  height: 2em;
  text-align: center;
  color: #fff;
  background: #E26B5D;
  margin: 0 auto 10px;
  display: block;
  border-radius: 100vh;
  position: relative;
}


.flow01 > li dl {
  padding: 20px;
  margin: 0;
  border: 3px solid #8bbb35;
 border-radius:10px;
  position: relative;
  width: 86%;
}

.flow01 > li:not(:first-child) dl::before {
  content: "";
  width: 14px;
  height: 14px;
  margin-right: 10px;
  display: inline-block;
  border-top: 4px solid #8bbb35;
  border-right: 4px solid #8bbb35;
  position: absolute;
  top: calc(50% - 14px);
  left: -45px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.flow01 > li dl dt {
  font-size: 1.2em;
  font-weight: 600;
  color: #004492;
  -ms-flex-preferred-size: 20%;
  flex-basis: 20%;
  text-align: center;
}

.flow01 > li dl dd {
  margin-left: 0;
  text-align: center;
}

@media(max-width: 768px){
  .flow01 {
    flex-wrap: wrap;
    gap: 20px;
  }
  .flow01 > li {
    width: 100%;
    max-width: unset;
    display: block;
	margin-bottom: 2%; 
  }
  .flow01 > li dl {
    width: 100%;
  }
	
.flow01 dd {
  text-align: center;
}
	  
.flow01 > li:not(:first-child) dl::before {
  top:-47%; /*番号を入れる場合-22%*/
  left: 48%;

  -webkit-transform: rotate(45deg);
  transform: rotate(135deg);
	} 
}
/* ▲▲横向きフロー図 */

/* --------------------------------------------------------------------------- */
/* Tpocis - competition - final_world */
/* --------------------------------------------------------------------------- */

.topics.competition figure img{
    border: solid 1px #ddd;
}

/* ▼▼コンテンツ用2カラム・SP１カラム*/	
	.content-col-2-sp100per{
	display: flex; /* flexbox */
	flex-wrap: wrap; /* 折返し指定 */
	gap: 20px;
		}	
		
	.content-col-2-sp100per div{
	width: calc(52% - 30px); 
	padding: 10px;
	}
		
@media screen and (max-width: 820px){
	.content-col-2-sp100per div{
	width:100%;
	text-justify: none;
	padding: 0;
	}
}
/* ▲▲コンテンツ用2カラム・SP１カラム*/	


/* ▼▼コンテンツ用3カラム・SP3カラム*/	
	.content-col-3{
	display: flex; /* flexbox */
	flex-wrap: wrap; /* 折返し指定 */
	gap: 20px;
		}	
		
	.content-col-3 div{
	width: calc(34% - 20px); 
	/*padding: 10px;*/
	}
		
@media screen and (max-width: 820px){
	.content-col-3 div{
	text-justify: none;
	}
}
/* ▲▲コンテンツ用3カラム・SP3カラム*/

/* ▼▼コンテンツ用3カラム・SP1カラム*/	
.content-col-3-sp100per{
	display: flex; /* flexbox */
	flex-wrap: wrap; /* 折返し指定 */
	gap: 20px;
		}	
		
	.content-col-3-sp100per div{
	width: calc(34% - 20px); 
	/*padding: 10px;*/
	}
		
@media screen and (max-width: 820px){
	.content-col-3-sp100per div{
        width:100%;
        text-justify: none;
        padding: 0;
	}
}
/* ▲▲コンテンツ用3カラム・SP1カラム*/

.figure-c{
    margin: 0 auto;
}

.figure-tate{
    max-width: 300px;
}
@media screen and (max-width: 820px){
	.figure-tate{
        max-width: auto;
    }
}

/* --------------------------------------------------------------------------- */
/* Sitemap */
/* --------------------------------------------------------------------------- */

.sitemap ul{
    margin-left: 1.8em;
    list-style: none;
}
.sitemap ul li a{
    position: relative;
}
.sitemap ul li a:before{
    content: "";
    display: block;
    width: 15px;
    height: 7px;
    margin: auto;
    background: url("../img2/icn_arrow_bl02.png") right top / auto 100% no-repeat;
    position: absolute;
    left: -1.8em;
    top: 4px;
    bottom: 0;
}
.sitemap ul li a:hover{
    color: #004492;
    text-decoration: none;
}

/* --------------------------------------------------------------------------- */
/* Odyssey award */
/* --------------------------------------------------------------------------- */
/* *****award table***** */
.award a{	
		float: left;
  		width: 80%;
}
			
@media screen and (max-width: 820px){
	.award a{
			width:auto;
			clear: both;
			margin-right: 5%;
	}
}




.ttl1{
	background: #e5e3e3 !important;
}

.award-rank tr th{width:10%;}

.pref{
	/*background: #f3f7f9 !important;*/
	font-weight: 500;
	width:20% !important;
}



@media screen and (max-width: 820px){

	.award-rank tr th{width:100%;
		padding:6px;
	}	

	.pref{
		width:100% !important;
		padding:20px !important;
	}
	
}


/* --------------------------------------------------------------------------- */
/* ページネーション */
/* --------------------------------------------------------------------------- */
.column-pager{
	flex-wrap: wrap;
    justify-content: center;
    margin: 0 auto;
}
.column-pager li{
	display: block;
	width: 30px;
	height: 30px;
	margin: 0 5px 10px;
	text-indent: 0;
	list-style: none;
}
.column-pager li a,
.column-pager li span{
	display: block;
	line-height: 30px;
	text-align: center;
	text-decoration: none;
	color: #fff;
	background: #a5a5a5;
	transition: background 0.3s;
}
.column-pager li a:hover,
.column-pager li span.active{
	background: #333;
}
.column-pager li.btn_prev img,
.column-pager li.btn_next img{
	width: 14px;
	padding: 11px 0 0;
	line-height: 30px;
	vertical-align: top;
}
.column-pager li.btn_prev{
	margin: 0 20px 10px 0;
}
.column-pager li.btn_next{
	margin: 0 0 10px 20px;
}

/* --------------------------------------------------------------------------- */
/* コン検領収書フォーム */
/* --------------------------------------------------------------------------- */
.agreedBtn{
    width: 100%;
    margin: 0 auto;
    padding: 20px 40px;
    font-size: 16px;
    font-weight: 700;
    color: #c0c0c0;
    background-color: #f5f5f5;
    border: none;
    transition: background 0.3s, color 0.3s;
}
.active .agreedBtn{
    color: #fff;
    background-color: #004492;
    cursor: pointer;
    transition: background 0.3s;
}

.active .agreedBtn:hover{
    background-color: #424242;
}
.btn-agreed{
    display: block;
    width: 300px;
    height: 60px;
    margin: 0 auto 70px;
    padding: 0;
    position: relative;
}
.btn-agreed:after{
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    margin: auto;
    border-style: solid;
    border-width: 4px 0 4px 7px;
    border-color: transparent transparent transparent #fff;
    position: absolute;
    top: 6px;
    bottom: 0;
    left: 50px;
}
@media only, screen and (max-width: 768px) {
    .btn-agreed{
        margin: 0 auto 35px;
    }
    
    .agreedBtn{
        font-size: 14px;
    }
    .btn-agreed:after{
        top: 3px;
        left: 60px;
    }
}/*max768*/


/* --------------------------------------------------------------------------- */
/* フロー */
/* --------------------------------------------------------------------------- */
.flow-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 90%;
    margin: auto;
    position: relative;
  }

  .step {
    display: flex;
    justify-content: flex-start;
    gap: 15px;
    width: 100%;
    position: relative;
    margin-bottom: 30px;
  }

  .step-title-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
  }

  .step-title {
    background-color: #BDD6EE;
    border-radius: 10px;
    padding: 10px 30px;
    white-space: nowrap;
    width: 300px;
  }

  .arrow {
    width: 0;
    height: 0;
    border-left: 15px solid transparent;
    border-right: 15px solid transparent;
    border-top: 15px solid #333;
    margin: 20px 0;
    position: absolute;
    top: 35px;
    left: 135px;
  }

  .step-description {
    flex: 1;
    font-size: 14px;
  }

  @media (max-width: 768px) {
    .flow-container {
        max-width: 100%;
    }
    .step {
      flex-direction: column;
      align-items: flex-start;
      gap: 5px;
      padding-left: 10px;
      margin-bottom: 0;
    }

    .step-title-wrapper {
      align-items: flex-start;
      width: 100%;
    }

    .step-title {
      width: 100%;
      box-sizing: border-box;
      margin-bottom: 10px;
    }

    .arrow {
      align-self: center;
      position: relative;
      top: auto;
      left: auto;
    }

    .step-description {
        font-size: 13px;
      }
  }