@charset "utf-8";
/* CSS Document */


/* block_ttl
   ================================================================== */
.block_ttl{
	margin: 0 0 0;
}

.block_ttl span{
	display: block;
    line-height: 150%;
}

.block_ttl .eng{
	font-size: 10vw;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.block_ttl .jpn{
	font-size: 3vw;
    font-weight: 400;
}

.block_ttl .dot{
    margin: 1vw 0 3vw;
	background: #F7B930;
    position: relative;
}

.block_ttl .dot:before,
.block_ttl .dot:after{
	content: "";
    position: absolute;
    top: 0;
}

.block_ttl .dot,
.block_ttl .dot:before,
.block_ttl .dot:after{
    width: 2.5vw;
    height: 2.5vw;
    border-radius: 50px;
}

.block_ttl .dot:before{
	background: #EBA7C7;
	left: calc(100% + 2vw);
}

.block_ttl .dot:after{
	background: #FFEF5A;
	left: calc(100% + 2vw + 2.5vw + 2vw);
}


/* round_box_ttl
   ================================================================== */
.round_box_ttl{
	display: block;
}

.round_box_ttl span{
    padding: 2vw 5vw;
    font-size: 3.3vw;
	display: inline-flex;
    justify-content: center;
    align-items: center;
    line-height: 150%;
    border-radius: 50px;
    color: #fff;
    box-sizing: border-box;
    background: #3191AC;
    font-weight: 500;
}

/* blue */
.round_box_ttl.blue span{
    background: #3191AC;
}

/* orange */
.round_box_ttl.orange span{
    background: #EB6759;
}

/* green */
.round_box_ttl.green span{
    background: #A8B71B;
}

/* purple */
.round_box_ttl.purple span{
    background: #784695;
}

/* pink */
.round_box_ttl.pink span{
    background: #EBA7C7;
}


/* under_kv
   ================================================================== */
.under_kv{
	margin: 0 0 0;
    padding: 2vw 0 8vw;
    position: relative;
    z-index: 1;
}

.page_ttl{
	position: relative;
}

.page_ttl span{
	display: block;
    line-height: 150%;
    color: #111;
}

.page_ttl .eng{
	font-size: 10vw;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.page_ttl .jpn{
    margin: 0 0 0 2vw;
    padding: 0 0 0 3vw;
	font-size: 3vw;
    font-weight: 500;
    position: relative;
}

.page_ttl .jpn:before{
	content: "";
	background: #111;
	width: 1vw;
	height: 1vw;
	position: absolute;
	top: 2vw;
	left: 0;
    border-radius: 50px;
}

.page_ttl .bg_eng{
    font-size: 20vw;
    font-weight: 800;
    color: rgba(246,246,246,.8);
    position: absolute;
    top: -8vw;
    left: -5vw;
    z-index: -1;
}


/* key_object
   ================================================================== */
.key_object{
    transform: rotate(-15deg);
    transform-origin: left bottom;
}

.key_object img{
    width: 100%;
    transform: scaleX(0) rotate(30deg);
    transform-origin: left bottom;
}

.on .key_object img{
    animation: key_object 2s cubic-bezier(0.165, 0.84, 0.44, 1) 0s 1 normal both;
}

@keyframes key_object{
    0% {transform: scaleX(0);}
    100%{transform: scaleX(1);}
}


/* kv
   ================================================================== */
.kv{
    position: relative;
    border-bottom: 1px solid #EBA7C7;
    overflow: hidden;
}

.kv .inner{
    height: 68vh;
    min-height: 600px;
    position: relative;
    display: flex;
    z-index: 1;
}

.kv .inbox{
    padding: 10vw 0 0;
    width: 100%;
}

.kv .catch{
    font-size: 5vw;
    font-family: 'Noto Serif JP';
    font-weight: 600;
    letter-spacing: 0.4em;
    line-height: 170%;
    position: absolute;
    top: 64vw;
    left: 54vw;
    opacity: 0;
}

.kv.on .catch{
    animation: kc_catch 1s ease-in-out alternate 2s forwards;
}

.kv .key_object{
    position: absolute;
    width: 93vw;
    left: -25vw;
    bottom: -31vw;
}

.kv.on .key_object img{
    animation: key_object 2s cubic-bezier(0.165, 0.84, 0.44, 1) 2s 1 normal both;
}
    
/* loopslider */
.kv .loopslider{
	padding: 0 0 0;
    visibility: hidden;
    display: flex;
    opacity: 0;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}

.infiniteslide_wrap .loopslider{
    visibility: visible;
    opacity: 1;
}

.kv .loop_wrap{
    animation: kv_loopslider 1s linear 3s 1 normal both;
}

.kv .loopslider li{
	width: 300vw;
    line-height: 0;
}

@keyframes kc_catch{
    0% {
        opacity: 0;
        transform: translateY(-20px);
        }
    100% {
        opacity: 1;
        transform: translateY(0);
        }
}

@keyframes kv_loopslider{
    0% {opacity: 0;}
    100%{opacity: 1;}
}


/* anime_view
   ================================================================== */
.anime_view svg{
    width: 100%;
}

.anime_view .logo_anime{
    stroke: #ddd;
    fill: rgba(0,0,0,0);
    stroke-dasharray:  4000;
    stroke-dashoffset: 4000;
    animation: DASH_sp 7s ease-in-out alternate 0s forwards;
}

@keyframes DASH_sp{
    0% {
        stroke-dashoffset: 4000;
        fill: rgba(17,17,17,0);
        stroke-width: 1;
        }
    30% {
        fill: rgba(17,17,17,0);
        stroke-width: 1;
        }
    40% {
        fill: rgba(17,17,17,1);
        stroke-width: 0;
        }
    100% {
        stroke-dashoffset: 0;
        fill: rgba(17,17,17,1);
        stroke-width: 0;
        }
}

@keyframes DASH{
    0% {
        stroke-dashoffset: 4000;
        fill: rgba(17,17,17,0);
        stroke-width: 0.7;
        }
    20% {
        fill: rgba(17,17,17,0);
        stroke-width: 0.7;
        }
    30% {
        fill: rgba(17,17,17,1);
        stroke-width: 0;
        }
    100% {
        stroke-dashoffset: 0;
        fill: rgba(17,17,17,1);
        stroke-width: 0;
        }
}


/* index_news
   ================================================================== */
.index_news{
    padding: 10vw 0 0;
}

.index_news .news_list{
    margin-top: 8vw;
}

.index_news .more_btn{
    margin: 12vw 0 0;
    text-align: right;
}


/* news_list
   ================================================================== */
.inner .news_list{
    margin-left: -3vw;
    margin-right: -3vw;
}

.news_list li a{
    display: block;
    position: relative;
}

.news_list .list_inbox{
    padding: 5vw 3vw;
    display: block;
    position: relative;
}

.news_list li a::before{
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    box-sizing: border-box;
    border-bottom: 1px solid #ddd;
}

.index .news_list li a::before{
    width: 100vw;
}

.news_list li .date_tag_box{
    width: 86%;
}

.news_list li .title{
    margin: 2vw 0 0;
    font-size: 3.6vw;
    font-weight: 700;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
}


/* date_tag_box
   ================================================================== */
.date_tag_box{
    display: flex;
}

.date_tag_box *{
    display: block;
    font-size: 3.3vw;
    line-height: 150%;
    letter-spacing: 0.1em;
    box-sizing: border-box;
}

.date_tag_box .date{
    width: 22vw;
}

.date_tag_box .tags{
    margin: 0 0 0 3vw;
    font-size: 0;
    width: calc(100% - 22vw - 3vw);
}

.date_tag_box .tags *{
    margin-right: 3vw;
    color: #E59B27;
    display: inline-block;
    vertical-align: top;
    box-sizing: border-box;
}

.news_list li .tags *:last-child{
    margin-right: 0;
}


/* select_category
   ================================================================== */
.select_category {
    margin: 3vw 0 0;
    display: flex;
    justify-content: flex-end;
}

.select_category .select_category_inbox {
    position: relative;
}

.select_category .select_btn {
    padding: 2vw 10vw 2vw 5vw;
    font-size: 3.4vw;
    font-weight: 500;
    position: relative;
    cursor: pointer;
}

.select_category .select_btn::before {
    content: "";
    margin: auto;
    background-image: url("../images/common/icon_down_arrow.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 3vw;
    height: 3vw;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 3vw;
    transition: 0.3s;
}

.select_category .on .select_btn::before {
    transform: rotate(180deg);
}

.select_category ul {
    padding: 2vw 0.5vw 2vw 2vw;
    position: absolute;
    min-width: 35vw;
    top: 100%;
    right: 0;
    z-index: 10;
    display: none;
    background: #000;
    box-sizing: border-box;
    border-radius: 10px;
}

.select_category ul > li {
    margin: 0 0 0;
}

.select_category ul > li a {
    padding: 1vw 3vw 1vw 6vw;
    font-size: 3.4vw;
    white-space: nowrap;
    letter-spacing: 0.05em;
    font-weight: 500;
    color: #fff;
    transition: 0.3s;
    display: block;
    position: relative;
}

.select_category ul > li a:before {
    content: "";
    background: #fff;
    width: 1vw;
    height: 1vw;
    position: absolute;
    top: 3.5vw;
    left: 3vw;
    border-radius: 20px;
}


/* contact
   ================================================================== */
.contact{
	padding: 0 0 20vw;
}

/* form */
.contact form *{
	font-family: "Noto Sans JP";
}

.contact .top_note{
	margin: 0 0 6vw;
    text-align: center;
    font-size: 4vw;
    font-weight: 700;
}

.contact .top_text{
	margin: 0 -4vw;
    text-align: center;
    font-size: 3.1vw;
}

.contact .conf_text{
    margin: 10vw 0 0;
	font-size: 4vw;
    color: #E64C3B;
    text-align: center;
    font-weight: 700;
	line-height: 150%;
}

.contact .req{
	color: #E64C3B;
}

.contact table{
    margin: 10vw auto 0;
	width: 100%;
	box-sizing: border-box;
}

.contact th,
.contact td{
	font-size: 16px;
	line-height: 150%;
	letter-spacing: 0.10em;
	width: 100%;
	display: block;
	font-weight: normal;
	border-bottom: none;
	box-sizing: border-box;
}

.contact th{
	padding: 0 0 10px;
    font-weight: 500;
}

.contact td{
	padding: 0 0 25px;
    position: relative;
}

.contact td .balloon{
    position: absolute;
    bottom: -25px;
    left: 15px;
    height: 16px;
    line-height: 1;
    font-size: 13px;
    color: #E64C3B;
    letter-spacing: 0;
}

.contact output,
.contact input,
.contact select,
.contact textarea{
	margin: 0;
	font-size: 16px;
    line-height: 170%;
    letter-spacing: 0.1em;
	padding: 15px;
	box-sizing: border-box;
	width: 100%;
    background: #F8F8F8;
	border: 1px solid #F8F8F8;
	vertical-align: middle;
}

/* 確認画面の入力文字背景 */
.contact output{
    display: block;
    background: rgba(246,172,43,.1);
    border-color: rgba(246,172,43,.1);
}

input:focus,
select:focus,
textarea:focus{
    outline: none;
}

textarea::-webkit-input-placeholder,
select::-webkit-input-placeholder,
input::-webkit-input-placeholder{
    color: #ccc;
}

textarea::-moz-placeholder,
textarea::-moz-placeholder,
select::-moz-placeholder{
    color: #ccc; opacity: 1;
}

textarea:-ms-input-placeholder,
select:-ms-input-placeholder,
input:-ms-input-placeholder{
    color: #ccc;
}

.contact textarea{
    height: 50vw;
	line-height: 150%;
}

.zas_btn_area{
	margin: auto;
	text-align: center;
	padding: 30px 0 0;
	font-size: 0;
	box-sizing: border-box;
	max-width: 500px;
}

.zas_btn_area button{
	font-size: 16px;
	color: #FFF;
	border: none;
	position: relative;
	overflow: hidden;
	text-align: center;
    transition: .3s;
}

.zas_btn_area button > span{
	padding: 12px 0;
	border: none;
	display: block;
	font-size: 16px;
    font-weight: 400;
	line-height: 150%;
	color: #FFF;
}

.zas_btn_area button:disabled{
	background: #ccc !important;
    border-color: #ccc !important;
    cursor: auto;
}

.zas_btn_area button:disabled span{
    color: #fff !important;
}

.zas_btn_area .zas_btn01{
	background: #E59B27;
	width: 55%;
	max-width: 260px;
}


/* thanks
   ================================================================== */
.thanks{
    text-align: center;
}

.thanks h3{
    margin: 0 0 0;
	font-size: 4.2vw;
	line-height: 150%;
    font-weight: 700;
}

.thanks p{
    margin: 8vw 0 0;
	font-size: 3.5vw;
	line-height: 200%;
}

.thanks .go_top_btn{
	margin: 12vw auto 0;
    text-align: center;
}


/* list_page
   ================================================================== */
.list_page .content_block > .inner{
    padding-top: 0;
    padding-bottom: 15vw;
}

.list_page .list_page_title{
    margin: 0 0 10vw;
}

.list_page .list_page_title h3{
    font-size: 4.5vw;
    font-weight: 700;
    color: #E59B27;
}


/* show_page
   ================================================================== */
.show_page .content_block > .inner{
    padding-top: 0;
    padding-bottom: 15vw;
}


/* pgn
   ================================================================== */
.pgn{
	text-align: center;
	padding: 10vw 0 5px;
	font-size: 0;
}

.pgn nav > div:first-child{
	display: none;
}

.pgn nav > div > div > span{
	display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.pgn nav > div > div > span > *{
    vertical-align: top;
	margin: 6px 3px 0;
	text-decoration: none;
	background: #ddd;
	color: #FFF;
	padding: 2px 0 0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 16px;
	width: 34px;
	height: 34px;
    box-sizing: border-box;
    letter-spacing: 0;
    transition: all ease-out 0.3s;
    font-family: "メイリオ","ms pgothic", sans-serif;
}

.pgn nav > div > div > span > * span{
	color: #FFF;
    font-family: inherit;
}

.pgn nav > div > div > span svg{
    width: 18px;
}

.pgn nav > div > div > span > span{
	background: #E59B27;
}

.pgn nav > div > div > span > span:first-child,
.pgn nav > div > div > span > span:last-child{
	display: none;
}


/* detail_page
   ================================================================== */
.detail_page{
	margin: 0 0 0;
	font-size: 16px;
	word-break: break-all;
}

.detail_page .detail_box h1{
	border-bottom: 1px solid #E59B27;
	font-size: 18px;
	font-weight: bold;
	margin: 0 0 10px;
	padding: 0 10px 10px;
	word-break: break-all;
	line-height: 150%;
}

.detail_page .f_box{
	margin: 4vw 0 0;
    font-size: 0;
}

.detail_page .hiduke{
    margin-right: 4vw;
    font-size: 3.5vw;
    color: #333;
    font-weight: 400;
    display: inline-block;
    vertical-align: middle;
}

.detail_page .detail_categories{
	margin: -.5vw 0 0;
    display: inline-block;
	vertical-align: middle;
}

.detail_page .detail_categories > ul{
    font-size: 0;
}

.detail_page .detail_categories > ul > li{
    margin: .5vw .5vw 0 0;
    padding: 1vw 3vw;
    display: inline-block;
    vertical-align: top;
    box-sizing: border-box;
    font-size: 3vw;
    line-height: 150%;
    color: #fff;
    background: #E59B27;
    border-radius: 0;
}

.detail_page .photo{
	margin: 4vw 0 0;
	line-height: 0;
}
	
.detail_page .photo img{
	max-height: 500px;
}
	
.detail_page .detail_body{
	margin: 4vw 0 0;
    clear: both;
}


/* detail_btn_area
   ================================================================== */
.detail_btn_area{
	margin: 15vw 0 0;
    padding: 10px;
	font-size: 0;
    text-align: center;
    background: #F9F9F9;
}

.detail_btn_area .detail_arrow_btn{
	margin: 0;
	display: inline-block;
	vertical-align: top;
	box-sizing: border-box;
	width: 40%;
    max-width: 310px;
}
	
.detail_btn_area .detail_arrow_btn.prev,
.detail_btn_area .detail_arrow_btn.next{
	width: 28%;
}

.detail_btn_area .detail_arrow_btn.back{
	margin: 0 2%;
}

.detail_btn_area .detail_arrow_btn a,
.detail_btn_area .detail_arrow_btn button{
	display: flex;
    justify-content: center;
    align-items: center;
	margin: auto;
	padding: 10px 0;
    box-sizing: border-box;
	width: 100%;
    height: 50px;
	background: #fff;
    border: 1px solid #ddd;
    border-radius: 0;
	color: #333;
	text-align: center;
	font-size: 16px;
    line-height: 0;
	letter-spacing: 0.10em;
	font-family: "Noto Sans JP","メイリオ","ms pgothic", sans-serif;
}


/* index_about
   ================================================================== */
.index_about{
    padding: 10vw 0 12vw;
}

.index_about .logo{
    margin: 0 auto;
    width: 20vw;
    line-height: 0;
}

.index_about .flex_box{
    margin: 10vw 0 0;
}

.index_about .flex_box .photo{
    margin: 0 0 0 -3vw;
}

.index_about .flex_box .text_box{
    padding: 5vw 0 0;
}

.index_about .flex_box .text_box .ttl{
    font-size: 4.5vw;
    font-family: 'Noto Serif JP';
    font-weight: 700;
}

.index_about .flex_box .text_box p{
    margin: 3vw 0 0;
}

.index_about .flex_box .more_btn{
    margin: 5vw 0 0;
}


/* index_service
   ================================================================== */
.index_service{
    padding: 12vw 0;
    background: #F6F6F6;
}

.index_service .list{
    margin: 6vw 0 0;
}

.index_service .list > li{
    margin: 6vw 0 0;
}

.index_service .list li a{
    padding: 4vw 4vw 6vw;
    background: #fff;
        border: 2px solid #fff;
    border-radius: 30px;
    display: block;
    box-sizing: border-box;
}

.index_service .list .flex{
    margin: 3vw 0 0;
    display: block;
}

.index_service .list .photo{
    display: block;
    line-height: 0;
}

.index_service .list .photo img{
    width: 100%;
}

.index_service .list .right_box{
    padding: 3vw 0 0;
    display: block;
}

.index_service .list .txt_list > span{
    padding: 2vw 0;
    font-size: 3.2vw;
    letter-spacing: 0.1em;
    line-height: 150%;
    display: block;
    border-bottom: 1px dashed #ccc;
}

.index_service .list .more_btn{
    margin: 4vw 0 0;
    display: block;
    text-align: right;
}


/* index_advisor
   ================================================================== */
.index_advisor{
    padding: 12vw 0;
}

.index_advisor .advisor_list{
    margin-top: 8vw;
}

.index_advisor .more_btn{
    margin: 10vw 0 0;
}


/* advisor_list
   ================================================================== */
.advisor_list{
    margin-bottom: -8vw;
    display: flex;
    flex-wrap: wrap;
}

.advisor_list > li{
    margin: 0 2% 8vw 0;
    width: 32%;
}

.advisor_list > li:nth-child(3n+3){
    margin-right: 0;
}

.advisor_list li .card{
    display: block;
}

.advisor_list li .thm{
    display: block;
    line-height: 0;
    border: 5px solid #F6F6F6;
    border-radius: 200px;
    overflow: hidden;
}

.advisor_list li .thm img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 1 / 1;
}

.advisor_list li .name{
    margin: 3vw 0;
    font-size: 2.9vw;
    line-height: 150%;
    font-weight: 700;
    text-align: center;
    display: block;
    letter-spacing: 0.1em;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
}

.advisor_list li .card_btn{
    text-align: center;
    display: block;
}

.advisor_list li .card_btn > span{
    padding: 1.5vw 3.5vw;
    font-size: 3.0vw;
	display: inline-flex;
    justify-content: center;
    align-items: center;
    line-height: 150%;
    border-radius: 50px;
    color: #fff;
    box-sizing: border-box;
    background: #52645A;
    border: 1px solid #52645A;
    font-weight: 400;
}


/* advisor_list_page
   ================================================================== */
.advisor_list_page{
    padding: 0 0 20vw;
}


/* advisor_show_page
   ================================================================== */
.advisor_show_page{
    padding: 0 0 20vw;
    position: relative;
}

.advisor_show_page .top_box{
    display: flex;
    align-items: center;
}

.advisor_show_page .top_box .thm{
    width: 45vw;
    line-height: 0;
    border: 5px solid #F6F6F6;
    border-radius: 200px;
    overflow: hidden;
}

.advisor_show_page .top_box .thm img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 1 / 1;
}

.advisor_show_page .top_box .name_box{
    padding: 0 0 0 5vw;
    width: calc(100% - 45vw);
    box-sizing: border-box;
}

.advisor_show_page .top_box .name > span{
    display: block;
    line-height: 150%;
    letter-spacing: 0.1em;
}

.advisor_show_page .top_box .name .jpn{
    font-size: 6vw;
}

.advisor_show_page .top_box .name .eng{
    margin: 2vw 0 0;
    font-size: 3.0vw;
    font-weight: 400;
    color: #08377A;
}

.advisor_show_page .profile_wrap{
    margin: 12vw 0 0;
}

.advisor_show_page .box{
    margin: 10vw 0 0;
}

.advisor_show_page .box .ttl{
    padding: 0 0 0 3vw;
    font-size: 3.8vw;
    font-weight: 500;
    position: relative;
}

.advisor_show_page .box .ttl:before{
	content: "";
	background: #111;
	width: 1vw;
	height: 1vw;
	position: absolute;
	top: 2.5vw;
	left: 0;
    border-radius: 50px;
}

.advisor_show_page .profile p{
	margin: 3vw 0 0;
    font-size: 3.5vw;
    color: #52645A;
}

.advisor_show_page .history p{
	margin: 3vw 0 0;
    font-size: 3.4vw;
}

.advisor_show_page .detail_btn_area{
	margin: 12vw 0 0;
}

.advisor_show_page .key_object{
    transform: rotate(13deg);
    transform-origin: left bottom;
    position: absolute;
    top: -40vw;
    right: -47vw;
    width: 100vw;
    z-index: -1;
    display: none;
}

.advisor_show_page .key_object img{
    transform: scaleX(0) rotate(30deg);
    transform-origin: right bottom;
}


/* design_table
   ================================================================== */
.design_table{
	width: 100%;
	box-sizing: border-box;
}

.design_table th,
.design_table td{
	width: 100%;
	display: block;
	font-weight: 400;
	border-bottom: none;
	box-sizing: border-box;
}

.design_table th,
.design_table td,
.design_table td p{
    font-size: 3.5vw;
    letter-spacing: 0.1em;
	line-height: 170%;
}

.design_table td a{
    font-size: inherit;
}

.design_table tr:nth-child(2n+2){
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
}

.design_table tr:first-child{
	border-top: 1px solid #ddd;
}

.design_table tr:last-child{
	border-bottom: 1px solid #ddd;
}

.design_table th{
	padding: 5vw;
	font-weight: 700;
}

.design_table td{
	padding: 0 5vw;
}

.design_table td .border{
	padding: 5vw 0;
	border-top: 1px solid #ddd;
}

.design_table td .box + .box{
	margin-top: 5vw;
    padding-top: 5vw;
    border-top: 1px dashed #ddd;
}

.design_table td .ttl + p{
	margin: 1vw 0 0;
}


/* company_block
   ================================================================== */
.company_block{
    padding: 0 0 20vw;
}

.company_block .top_txt{
    margin: 0 0 10vw;
}

.company_block .map{
    margin: 10vw 0 0;
    line-height: 0;
}

.company_block .map iframe{
    width: 100%;
    height: 80vw;
}


/* photos
   ================================================================== */
.photos{
    margin: 0 auto;
    line-height: 0;
}

.photos.bottom_photo{
    margin-bottom: 10vw;
}

.photos img{
    width: 100%;
    opacity: 0;
    filter: blur(6px);
    transition: 1.5s ease;
}

.photos.on img{
    opacity: 1;
    filter: blur(0);
}


/* index_catch
   ================================================================== */
.index_catch{
    position: relative;
    overflow: hidden;
}

.index_catch .center_flex{
    padding: 30vw 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.index_catch .inbox{
    position: relative;
    z-index: 1;
}

.index_catch .logo{
    margin: 0 auto;
    width: 65vw;
    line-height: 0;
}

.index_catch .txt{
    margin: 10vw 0 0;
    font-size: 5vw;
    line-height: 200%;
    font-family: 'Noto Serif JP';
    font-weight: 700;
    letter-spacing: 0.4em;
    text-align: center;
}

.index_catch .logo,
.index_catch .txt{
    transition: 1s ease;
    opacity: 0;
    transform: translateY(-15px);
}

.index_catch.on .logo,
.index_catch.on .txt{
    opacity: 1;
    transform: translateY(0);
}

.index_catch .txt{
    transition-delay: .6s;
}

.index_catch .key_object{
    position: absolute;
    bottom: -33vw;
    left: -46vw;
    width: 115vw;
}

.index_catch .key_object img{
    animation-delay: .8s;
}


/* service_page
   ================================================================== */
.service_page{
    margin: 0 0 0;
    padding: 0 0 20vw;
}

/* colors it_ec */
.page-it_ec .service_kv .title_box .ttl .eng{
    color: #3191AC;
}

.page-it_ec .service_content .value .ttl > span,
.page-it_ec .service_content .title > span,
.page-it_ec .service_content .title > span:before,
.page-it_ec .service_kv .title_box .ttl:before{
	background: #3191AC;
}

.page-it_ec .service_content .value .list li,
.page-it_ec .service_content .value{
    border-color: #3191AC;
}

.page-it_ec .service_content .value .list li{
    background-image: url("../images/service/it_ec-icon.svg");
}

/* colors production_media */
.page-production_media .service_kv .title_box .ttl .eng{
    color: #EB6759;
}

.page-production_media .service_content .value .ttl > span,
.page-production_media .service_content .title > span,
.page-production_media .service_content .title > span:before,
.page-production_media .service_kv .title_box .ttl:before{
	background: #EB6759;
}

.page-production_media .service_content .value .list li,
.page-production_media .service_content .value{
    border-color: #EB6759;
}

.page-production_media .service_content .value .list li{
    background-image: url("../images/service/production_media-icon.svg");
}

/* colors consulting */
.page-consulting .service_kv .title_box .ttl .eng{
    color: #A8B71B;
}

.page-consulting .service_content .value .ttl > span,
.page-consulting .service_content .title > span,
.page-consulting .service_content .title > span:before,
.page-consulting .service_kv .title_box .ttl:before{
	background: #A8B71B;
}

.page-consulting .service_content .value .list li,
.page-consulting .service_content .value{
    border-color: #A8B71B;
}

.page-consulting .service_content .value .list li{
    background-image: url("../images/service/consulting-icon.svg");
}

/* colors product_sales */
.page-product_sales .service_kv .title_box .ttl .eng{
    color: #784695;
}

.page-product_sales .service_content .value .ttl > span,
.page-product_sales .service_content .title > span,
.page-product_sales .service_content .title > span:before,
.page-product_sales .service_kv .title_box .ttl:before{
	background: #784695;
}

.page-product_sales .service_content .value .list li,
.page-product_sales .service_content .value{
    border-color: #784695;
}

.page-product_sales .service_content .value .list li{
    background-image: url("../images/service/product_sales-icon.svg");
}

/* colors life_support */
.page-life_support .service_kv .title_box .ttl .eng{
    color: #EBA7C7;
}

.page-life_support .service_content .value .ttl > span,
.page-life_support .service_content .title > span,
.page-life_support .service_content .title > span:before,
.page-life_support .service_kv .title_box .ttl:before{
	background: #EBA7C7;
}

.page-life_support .service_content .value .list li,
.page-life_support .service_content .value{
    border-color: #EBA7C7;
}

.page-life_support .service_content .value .list li{
    background-image: url("../images/service/life_support-icon.svg");
}


/* service_kv */
.service_kv{
    position: relative;
}

.service_kv .kv_top_box{
    position: relative;
}

.service_kv .photo{
    width: 100%;
    position: relative;
}

.service_kv .photo:before{
	content: "";
	background: #F6F6F6;
	width: 300vw;
	height: 100%;
	position: absolute;
	top: 0;
	left: -100vw;
}

.service_kv .photo img{
    width: 100%;
    position: relative;
    z-index: 1;
}

.service_kv .kv_top_box .inner{
    margin-top: -10vw;
    position: relative;
    z-index: 1;
}

.service_kv .title_box{
    padding: 5vw 5vw 8vw 0;
    width: 60%;
    min-width: 70vw;
    position: relative;
    background: #fff;
    box-sizing: border-box;
    border-radius: 0 30px 0 0;
}

.service_kv .title_box:before{
	content: "";
	background: #fff;
	width: 100vw;
	height: 100%;
	position: absolute;
	top: 0;
	right: 100%;
}

.service_kv .title_box .ttl{
    padding: 0 0 3vw;
    position: relative;
}

.service_kv .title_box .ttl > span{
    display: block;
    line-height: 150%;
}

.service_kv .title_box .ttl .jpn{
    font-size: 6vw;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.service_kv .title_box .ttl .eng{
    margin: 3vw 0 0;
    width: 92vw;
    font-size: 3vw;
    box-sizing: border-box;
    font-weight: 400;
    letter-spacing: 0.1em;
    color: #3191AC;
}

.service_kv .title_box .ttl:before{
	content: "";
	background: #3191AC;
	width: 1px;
	height: 8vw;
	position: absolute;
	top: 100%;
	left: 6vw;
}

.service_kv .kv_bottom_box{
	padding: 5vw 0 0;
}


/* service_content */
.service_content{
    margin: 12vw 0 0;
}

.service_content .title > span{
    width: 60vw;
    height: 12vw;
    font-size: 3.8vw;
    font-weight: 700;
    display: flex;
    align-items: center;
    background: #3191AC;
    border-radius: 0 15px 15px 0;
    color: #fff;
    position: relative;
}

.service_content .title > span:before{
	content: "";
    background: #3191AC;
	width: 100vw;
	height: 100%;
	position: absolute;
	top: 0;
	right: 100%;
}

.service_content .flex{
	margin: 6vw 0 0;
}

.service_content .flex .photo img{
	width: 100%;
}

.service_content .flex .list{
	margin: 3vw 0 0;
}

.service_content .flex .list li{
	padding: 3vw 3vw;
    font-size: 3.5vw;
    font-weight: 500;
    border-bottom: 1px dashed #ccc;
}

.service_content .value{
	margin: 12vw 0 0;
    padding: 0 4vw 6vw;
    border: 1px solid #3191AC;
}

.service_content .value .ttl{
	margin-top: -5vw;
}

.service_content .value .ttl > span{
    width: 30vw;
    height: 10vw;
    font-size: 3.6vw;
    font-weight: 500;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: #3191AC;
    border-radius: 50px;
    color: #fff;
}

.service_content .value .list{
	margin: 1vw 0 0;
}

.service_content .value .list li{
	padding: 3vw 0 3vw 8vw;
    font-size: 3.5vw;
    background-image: url("../images/service/it_ec-icon.svg");
	background-repeat: no-repeat;
	background-position: 2vw 4.6vw;
	background-size: 3vw;
    font-weight: 700;
    color: #111;
    border-bottom: 1px dashed #3191AC;
}


@media screen and (min-width : 500px){


    /* block_ttl
       ================================================================== */
    .block_ttl .eng{
        font-size: 4.0vw;
    }

    .block_ttl .jpn{
        font-size: 1.3vw;
    }

    .block_ttl .dot{
        margin: .5vw 0 1.5vw;
    }

    .block_ttl .dot,
    .block_ttl .dot:before,
    .block_ttl .dot:after{
        width: 1.0vw;
        height: 1.0vw;
    }

    .block_ttl .dot:before{
        background: #EBA7C7;
        left: calc(100% + 1.0vw);
    }

    .block_ttl .dot:after{
        background: #FFEF5A;
        left: calc(100% + 1.0vw + 1.0vw + 1.0vw);
    }


    /* round_box_ttl
       ================================================================== */
    .round_box_ttl span{
        padding: 0 2.6vw;
        min-width: 14.0vw;
        height: 3.5vw;
        font-size: 1.3vw;
    }


    /* under_kv
       ================================================================== */
    .under_kv{
        margin: 0 0 0;
        height: 23.7vw;
        display: flex;
        align-items: center;
        padding: 0;
    }

    .under_kv .inner{
        width: 100%;
    }

    .page_ttl .eng{
        font-size: 5.5vw;
    }

    .page_ttl .jpn{
        margin: 0 0 0 1.0vw;
        padding: 0 0 0 1.7vw;
        font-size: 1.8vw;
    }

    .page_ttl .jpn:before{
        width: .6vw;
        height: .6vw;
        top: 1.2vw;
    }

    .page_ttl .bg_eng{
        font-size: 15.5vw;
        top: -8.5vw;
        left: -11.5vw;
    }

    
    /* kv
       ================================================================== */
    .kv{
        position: relative;
        text-align: center;
    }

    .kv .inner{
        height: calc(100vh - 10.0vw);
        box-sizing: border-box;
        align-items: center;
    }

    .kv .inbox{
        padding: 0 0 0;
        position: relative;
    }

    .kv .catch{
        font-size: 2.5vw;
        line-height: 4.2vw;
        top: 23.3vw;
        left: 58.5vw;
    }

    .kv .logo_svg{
        width: 58.0vw;
    }

    .kv .key_object{
        width: 80.0vw;
        left: -24vw;
        bottom: -25.1vw;
    }

    /* loopslider */
    .kv .loopslider li{
        width: 127.0vw;
    }


    /* index_news
       ================================================================== */
    .index_news{
        padding: 8.5vw 0 0;
    }

    .index_news .flex{
        display: flex;
    }

    .index_news .block_ttl{
        width: 18.3vw;
    }

    .index_news .news_list{
        margin-top: -1.0vw;
        width: calc(100% - 18.3vw);
        box-sizing: border-box;
    }

    .index_news .more_btn{
        margin: 4.5vw 0 0;
    }


    /* news_list
       ================================================================== */
    .inner .news_list{
        margin-left: -2vw;
        margin-right: -2vw;
    }

    .news_list li .list_inbox{
        padding: 2.4vw 3.0vw 2.4vw 2.0vw;
        position: relative;
    }

    .news_list li .date_tag_box{
        width: 100%;
    }

    .news_list li .title{
        margin: 1.2vw 0 0;
        font-size: 1.6vw;
        width: calc(100% - 5.0vw);
        position: relative;
    }

    .news_list li a .list_inbox::before{
        content: "";
        width: 100%;
        height: 1px;
        position: absolute;
        bottom: 0;
        left: 0;
        background: #E59B27;
        transition: 1.0s transform cubic-bezier(0, 0.63, 0.47, 0.96);
        transform-origin: center right;
        transform: scaleX(0);
    }

    .index .news_list li a .list_inbox::before{
        width: 100vw;
    }

    .news_list li a:hover .list_inbox::before{
        transform: scaleX(1);
        transform-origin: center left;
    }


    /* date_tag_box
       ================================================================== */
    .date_tag_box{
        display: flex;
    }

    .date_tag_box *{
        font-size: 1.3vw;
    }

    .date_tag_box .date{
        width: 8.5vw;
    }

    .date_tag_box .tags{
        margin: 0 0 0 2.0vw;
        width: calc(100% - 8.5vw - 2.0vw);
    }

    .date_tag_box .tags *{
        margin-right: 1.0vw;
    }

    .date_tag_box .tags a{
        transition: .3s;
    }

    .date_tag_box .tags a:hover{
        opacity: .5;
    }
    

    /* select_category
       ================================================================== */
    .select_category {
        margin: 1.5vw 0 0;
    }

    .select_category .select_btn {
        padding: 0.8vw 5vw 0.8vw 2vw;
        font-size: 1.4vw;
        transition: 0.3s;
    }

    .select_category .select_btn:hover {
        color: #E59B27;
    }

    .select_category .select_btn::before {
        width: 1vw;
        height: 0.6vw;
        right: 1.7vw;
    }

    .select_category ul {
        padding: .7vw 0.5vw .7vw 1.7vw;
        min-width: 14vw;
    }

    .select_category ul > li {
        margin: 0 0 0;
    }

    .select_category ul > li a {
        padding: 0.5vw 1vw 0.5vw 1.3vw;
        font-size: 1.4vw;
    }

    .select_category ul > li a:before {
        width: 0.5vw;
        height: 0.5vw;
        top: 1.8vw;
        left: 0;
    }

    .select_category ul > li a,
    .select_category ul > li a:before {
        transition: 0.3s;
    }

    .select_category ul > li a:hover {
        color: #FFEF5A;
    }

    .select_category ul > li a:hover:before {
        background: #FFEF5A;
    }


    /* contact
       ================================================================== */
    .contact{
    	padding: 0 0 16.5vw;
    }
    
    /* form */
    .contact .top_note{
    	margin: 0 0 1.7vw;
        font-size: 1.8vw;
    }
    
    .contact .top_text{
    	margin: 0 0 0;
        font-size: 1.4vw;
    }
    
    .contact .conf_text{
        margin: 0 0 0;
    	font-size: 1.5vw;
    }
    
    .contact table{
        margin: 7vw 0 0 15%;
        width: 85%;
    }
    
    .contact th,
    .contact td{
        width: auto;
    	font-size: 15px;
    }
    
    .contact th{
    	padding: 0 0 0;
        box-sizing: border-box;
    }
    
    .contact .title_top th{
    	padding-top: 31px;
        vertical-align: top;
    }
    
    .contact td{
    	padding: 17px 0 18px;
    }
    
    .contact output,
    .contact input,
    .contact select,
    .contact textarea{
    	margin: 0;
    	font-size: 16px;
    	padding: 15px;
        max-width: 85%;
    }
	
	.contact select{
		vertical-align: middle;
	}
    
    .contact textarea{
        height: 235px;
    }
    
    .zas_btn_area{
    	margin: auto;
    	text-align: center;
    	padding: 30px 0 0;
    	font-size: 0;
    	box-sizing: border-box;
    }
    
    .zas_btn_area button{
    	font-size: 16px;
    	color: #FFF;
    	border: 2px solid #E59B27;
    	position: relative;
    	overflow: hidden;
    	text-align: center;
        transition: .3s;
        cursor: pointer;
    }
    
    .zas_btn_area button span{
    	padding: 12px 0;
    	border: none;
    	display: block;
    	font-size: 16px;
        transition: .3s;
    }
    
    .zas_btn_area .zas_btn01{
    	width: 50%;
    	max-width: 280px;
    }
    
    .zas_btn_area .zas_btn01:hover{
    	background: #fff;
    }
    
    .zas_btn_area .zas_btn01:hover span{
    	color: #E59B27;
    }


    /* thanks
       ================================================================== */
    .thanks h3{
        font-size: 3.0vw;
    }

    .thanks p{
        margin: 4.0vw 0 0;
    	font-size: 1.5vw;
        line-height: 2.5vw;
    }
    
    .thanks .go_top_btn{
    	margin: 5.0vw auto 0;
    }


    /* list_page
       ================================================================== */
    .list_page .content_block > .inner{
        padding-top: 0;
        padding-bottom: 20.0vw;
    }

    .list_page .list_page_title{
        margin: 0 0 5.0vw;
        width: 87%;
    }

    .list_page .list_page_title h3{
        font-size: 2.5vw;
    }
 	 	

    /* show_page
       ================================================================== */
    .show_page .content_block > .inner{
        padding-top: 0;
        padding-bottom: 16.5vw;
    }


	/* pgn
	   ================================================================== */
	.pgn{
		margin: 6.0vw 0 0;
		padding: 0;
	}

    .pgn nav > div > div > span > *{
    	padding: 1px 0 0;
    }
	
	.pgn nav > div > div > span > a:hover{
		background: #E59B27;
	}


    /* detail_page
       ================================================================== */
    .detail_page{
    	margin: 0 0 0;
    }
    
    .detail_page .detail_box h1{
    	font-size: 20px;
    	margin: 0 0 10px;
    	padding: 0 10px 10px;
    }
    
    .detail_page .f_box{
    	margin: 2vw 0 0;
    }
    
    .detail_page .hiduke{
        margin-right: 2vw;
        font-size: 1.8vw;
    }
    
    .detail_page .detail_categories{
    	margin: -5px 0 0;
    }
    
    .detail_page .detail_categories > ul{
        font-size: 0;
    }
    
    .detail_page .detail_categories > ul > li{
        padding: .5vw 2vw;
        margin: 5px 5px 0 0;
        font-size: 1.5vw;
        transition: .3s;
    }
    
    .detail_page .photo{
    	margin: 2vw 0 0;
    }
    	
    .detail_page .detail_body{
    	margin: 3vw 0 0;
    }


	/* detail_btn_area
	   ================================================================== */
	.detail_btn_area{
		margin: 8.5vw 0 0;
		font-size: 0;
		text-align: center;
	}
	
    .detail_btn_area .detail_arrow_btn,
    .detail_btn_area .detail_arrow_btn.next,
    .detail_btn_area .detail_arrow_btn.prev{
    	width: 32%;
    }

    .detail_btn_area .detail_arrow_btn.back{
    	margin: 0 2%;
    }
    
	.detail_btn_area .detail_arrow_btn a,
	.detail_btn_area .detail_arrow_btn button{
		padding: 0;
		width: 100%;
        height: 45px;
        line-height: 45px;
		text-align: center;
		font-size: 15px;
		letter-spacing: 0.10em;
		transition: .3s;
		cursor: pointer;
	}
	
	.detail_btn_area .detail_arrow_btn path{
		transition: .3s;
	}
	
	.detail_btn_area .detail_arrow_btn a:hover,
	.detail_btn_area .detail_arrow_btn button:hover{
		background: #E59B27;
		border-color: #E59B27;
        color: #fff;
	}

	.detail_btn_area .detail_arrow_btn a:hover path{
        fill: #fff;
	}


    /* index_about
       ================================================================== */
    .index_about{
        padding: 5.0vw 0 0;
    }

    .index_about .logo{
        width: 12.0vw;
    }

    .index_about .flex_box{
        margin: 7.0vw 0 0;
        display: flex;
    }

    .index_about .flex_box .photo{
        margin: 0 0 0 -2.0vw;
        width: 50.0vw;
    }

    .index_about .flex_box .text_box{
        padding: 4.4vw 0 0 3.0vw;
        width: calc(100% - 50.0vw + 2.0vw);
        box-sizing: border-box;
    }

    .index_about .flex_box .text_box .ttl{
        font-size: 2.3vw;
    }

    .index_about .flex_box .text_box p{
        margin: 1.4vw 0 0;
        line-height: 2.5vw;
    }

    .index_about .flex_box .more_btn{
        margin: 4.5vw 0 0;
    }


    /* index_service
       ================================================================== */
    .index_service{
        padding: 7.6vw 0 11.7vw;
    }

    .index_service .list{
        margin: 3.5vw 0 0;
    }

    .index_service .list > li{
        margin: 3.0vw 0 0;
    }

    .index_service .list li a{
        padding: 2.0vw 2.6vw 2.0vw 2.0vw;
        transition: .3s;
    }

    .index_service .list li.it_ec a:hover{
        border-color: #3191AC;
    }

    .index_service .list li.production_media a:hover{
        border-color: #EB6759;
    }

    .index_service .list li.consulting a:hover{
        border-color: #A8B71B;
    }

    .index_service .list li.product_sales a:hover{
        border-color: #784695;
    }

    .index_service .list li.life_support a:hover{
        border-color: #EBA7C7;
    }

    .index_service .list .flex{
        margin: 1.5vw 0 0;
        display: flex;
    }

    .index_service .list .photo{
        width: 33.0vw;
    }

    .index_service .list .right_box{
        padding: 0 0 0 2.0vw;
        width: calc(100% - 33.0vw);
        box-sizing: border-box;
    }

    .index_service .list .txt_list > span{
        padding: .8vw 0;
        font-size: 1.4vw;
        line-height: 2.5vw;
    }

    .index_service .list .more_btn{
        margin: 2.5vw 0 0;
    }


    /* index_advisor
       ================================================================== */
    .index_advisor{
        padding: 8.5vw 0 12.5vw;
    }

    .index_advisor .advisor_list{
        margin-top: 4.0vw;
    }

    .index_advisor .more_btn{
        margin: 6.6vw 0 0;
    }


    /* advisor_list
       ================================================================== */
    .advisor_list{
        margin-bottom: -5.0vw;
    }

    .advisor_list > li{
        margin: 0 2% 5.0vw 0;
        width: 18.4%;
    }

    .advisor_list > li:nth-child(3n+3){
        margin-right: 2%;
    }

    .advisor_list > li:nth-child(5n+5){
        margin-right: 0;
    }

    .advisor_list li .thm{
        border-width: 5px;
        transition: .3s;
    }

    .advisor_list li .thm img{
        transition: .3s;
    }

    .advisor_list li a.thm:hover{
    }

    .advisor_list li a.thm:hover img{
        transform: scale(1.05);
    }

    .advisor_list li .name{
        margin: 1.5vw 0;
        font-size: 1.5vw;
    }

    .advisor_list li .card_btn > span{
        padding: 0 1.0vw;
        width: 11.0vw;
        height: 3.5vw;
        font-size: 1.3vw;
        transition: .3s;
    }

    .advisor_list li a.card_btn:hover > span{
        color: #52645A;
        background: #fff;
    }


    /* advisor_list_page
       ================================================================== */
    .advisor_list_page{
        padding: 0 0 18.0vw;
    }


    /* advisor_show_page
       ================================================================== */
    .advisor_show_page{
        padding: 3.0vw 0 13.0vw;
    }

    .advisor_show_page .top_box .thm{
        width: 30.0vw;
    }

    .advisor_show_page .top_box .name_box{
        padding: 0 0 0 5.0vw;
        width: calc(100% - 30.0vw);
    }

    .advisor_show_page .top_box .name .jpn{
        font-size: 3.0vw;
    }

    .advisor_show_page .top_box .name .eng{
        margin: .5vw 0 0;
        font-size: 1.4vw;
    }

    .advisor_show_page .profile_wrap{
        margin: 5.0vw 0 0;
    }

    .advisor_show_page .box{
        margin: 3.5vw 0 0;
    }

    .advisor_show_page .box .ttl{
        padding: 0 0 0 1.8vw;
        font-size: 1.8vw;
    }

    .advisor_show_page .box .ttl:before{
        width: .6vw;
        height: .6vw;
        top: 1.0vw;
    }

    .advisor_show_page .profile p{
        margin: 1.0vw 0 0;
        font-size: 1.5vw;
    }

    .advisor_show_page .history p{
        margin: 1.0vw 0 0;
        font-size: 1.4vw;
        line-height: 2.8vw;
    }

    .advisor_show_page .detail_btn_area{
        margin: 7.0vw 0 0;
    }

    .advisor_show_page .key_object{
        top: -30.0vw;
        right: -26.0vw;
        width: 60.0vw;
        display: block;
    }


	/* design_table
	   ================================================================== */
	.design_table{
		width: 100%;
		box-sizing: border-box;
	}
	
	.design_table th,
	.design_table td{
		width: auto;
		display: table-cell;
		vertical-align: middle;
		box-sizing: border-box;
	}
	
	.design_table th,
	.design_table td,
    .design_table td p{
        font-size: 1.5vw;
        line-height: 3.0vw;
    }

	.design_table th{
		padding: 0 2vw 0 5vw;
		width: 23%;
	}
	
	.design_table .col th{
		padding: 2vw 2vw 2vw 5vw;
	}
	
	.design_table .title_top th{
		padding-top: 2vw;
		vertical-align: top;
	}
	
	.design_table td{
		padding: 2.5vw 0;
	}

	.design_table td .border{
		padding: 0 2vw 0 5vw;
		border-top: none;
		border-left: 1px solid #ddd;
		min-height: 3vw;
		display: flex;
		align-items: center;
        box-sizing: border-box;
	}

	.design_table td .border.box_in{
		display: block;
	}

    .design_table td .box{
    	margin-right: -2.0vw;
    }

    .design_table td .box + .box{
    	margin-top: 1.5vw;
        padding-top: 1.5vw;
    }
    
    .design_table td .ttl + p{
    	margin: .7vw 0 0;
    }


    /* company_block
       ================================================================== */
    .company_block{
        padding: 0 0 15.0vw;
    }

    .company_block .top_txt{
        margin: 0 0 5.0vw;
    }

    .company_block .map{
        margin: 5.0vw 0 0;
    }

    .company_block .map iframe{
        height: 50.0vw;
    }


    /* photos
       ================================================================== */
    .photos.bottom_photo{
        margin-bottom: 5.0vw;
    }


    /* index_catch
       ================================================================== */
    .index_catch .center_flex{
        padding: 0;
        height: 41.0vw;
    }

    .index_catch .logo{
        width: 31.5vw
    }

    .index_catch .txt{
        margin: 5.5vw 0 0;
        font-size: 2.2vw;
        line-height: 4.4vw;
    }

    .index_catch .key_object{
        bottom: -30.0vw;
        left: -17.6vw;
        width: 58vw;
    }


    /* service_page
       ================================================================== */
    .service_page{
        margin: 0 0 0;
        padding: 0 0 20.0vw;
    }


    /* service_kv */
    .service_kv{
        position: relative;
    }

    .service_kv .kv_top_box{
        margin: 0 auto;
    }

    .service_kv .photo{
        margin: 0 0 0 auto;
        width: 70%;
    }

    .service_kv .kv_top_box .inner{
        margin-top: -15.0vw;
    }

    .service_kv .title_box{
        padding: 5.3vw 2.0vw 4.5vw 0;
        width: 55%;
        min-width: 50.0vw;
    }

    .service_kv .title_box .ttl{
        padding: 0 0 2.5vw;
        position: relative;
    }

    .service_kv .title_box .ttl .jpn{
        font-size: 3.3vw;
    }

    .service_kv .title_box .ttl .eng{
        margin: 1.5vw 0 0;
        font-size: 1.3vw;
        width: auto;
    }

    .service_kv .title_box .ttl:before{
        height: 4.5vw;
        left: 3.0vw;
    }

    .service_kv .kv_bottom_box{
        padding: 2.5vw 0 0;
    }


    /* service_content */
    .service_content{
        margin: 5.0vw 0 0;
    }

    .service_content .title > span{
        width: 50..0vw;
        height: 6.0vw;
        font-size: 1.8vw;
    }

    .service_content .flex{
        margin: 5.0vw 0 0;
        display: flex;
    }

    .service_content .flex .photo{
        width: 40.0vw;
    }

    .service_content .flex .list{
        margin: -1.5vw 0 0;
        padding: 0 0 0 2.5vw;
        width: calc(100% - 40.0vw);
        box-sizing: border-box;
    }

    .service_content .flex .list li{
        padding: 1.5vw 0;
        font-size: 1.5vw;
        line-height: 2.5vw;
    }

    .service_content .value{
        margin: 7.0vw 0 0;
        padding: 0 3.0vw 4.0vw;
    }

    .service_content .value .ttl{
        margin-top: -2.3vw;
    }

    .service_content .value .ttl > span{
        width: 13.0vw;
        height: 4.5vw;
        font-size: 1.6vw;
    }

    .service_content .value .list{
        margin: 1.0vw 0 0;
    }

    .service_content .value .list li{
        padding: 1.2vw 0 1.2vw 5.0vw;
        font-size: 1.5vw;
        background-position: 1.6vw 2.1vw;
        background-size: 1.8vw;
    }

    
}
@media screen and (min-width : 1040px){    


    /* block_ttl
       ================================================================== */
    .block_ttl .eng{
        font-size: 40px;
    }

    .block_ttl .jpn{
        font-size: 13px;
    }

    .block_ttl .dot{
        margin: 5px 0 15px;
    }

    .block_ttl .dot,
    .block_ttl .dot:before,
    .block_ttl .dot:after{
        width: 10px;
        height: 10px;
    }

    .block_ttl .dot:before{
        background: #EBA7C7;
        left: calc(100% + 10px);
    }

    .block_ttl .dot:after{
        background: #FFEF5A;
        left: calc(100% + 10px + 10px + 10px);
    }


    /* round_box_ttl
       ================================================================== */
    .round_box_ttl span{
        padding: 0 26px;
        min-width: 140px;
        height: 35px;
        font-size: 13px;
    }


    /* under_kv
       ================================================================== */
    .under_kv{
        margin: 0 0 0;
        height: 237px;
        display: flex;
        align-items: center;
        padding: 0;
    }

    .under_kv .inner{
        width: 100%;
    }

    .page_ttl .eng{
        font-size: 55px;
    }

    .page_ttl .jpn{
        margin: 0 0 0 10px;
        padding: 0 0 0 17px;
        font-size: 18px;
    }

    .page_ttl .jpn:before{
        width: 6px;
        height: 6px;
        top: 12px;
    }

    .page_ttl .bg_eng{
        font-size: 155px;
        top: -85px;
        left: -115px;
    }

    
    /* kv
       ================================================================== */
    .kv{
        position: relative;
        text-align: center;
    }

    .kv .inner{
        height: calc(100vh - 100px);
        box-sizing: border-box;
        align-items: center;
    }

    .kv .inbox{
        padding: 0 0 0;
        position: relative;
    }

    .kv .catch{
        font-size: 25px;
        line-height: 42px;
        top: 233px;
        left: 585px;
    }

    .kv .logo_svg{
        width: 580px;
    }

    .kv .key_object{
        width: 720px;
        left: -183px;
        bottom: -236px;
    }

    /* loopslider */
    .kv .loopslider li{
        width: 1270px;
    }


    /* index_news
       ================================================================== */
    .index_news{
        padding: 85px 0 0;
    }

    .index_news .flex{
        display: flex;
    }

    .index_news .block_ttl{
        width: 183px;
    }

    .index_news .news_list{
        margin-top: -10px;
        width: calc(100% - 183px);
        box-sizing: border-box;
    }

    .index_news .more_btn{
        margin: 45px 0 0;
    }


    /* news_list
       ================================================================== */
    .inner .news_list{
        margin-left: 0;
        margin-right: 0;
    }

    .news_list li .list_inbox{
        padding: 24px 0;
    }

    .news_list li .date_tag_box{
        width: 100%;
    }

    .news_list li .title{
        margin: 12px 0 0;
        font-size: 16px;
        width: calc(100% - 50px);
    }


    /* date_tag_box
       ================================================================== */
    .date_tag_box{
        display: flex;
    }

    .date_tag_box *{
        font-size: 13px;
    }

    .date_tag_box .date{
        width: 85px;
    }

    .date_tag_box .tags{
        margin: 0 0 0 20px;
        width: calc(100% - 85px - 20px);
    }

    .date_tag_box .tags *{
        margin-right: 10px;
    }


    /* select_category
       ================================================================== */
    .select_category {
        margin: 15px 0 0;
    }

    .select_category .select_btn {
        padding: 8px 50px 8px 20px;
        font-size: 14px;
    }

    .select_category .select_btn::before {
        width: 10px;
        height: 6px;
        right: 17px;
    }

    .select_category ul {
        padding: 7px 5px 7px 17px;
        min-width: 140px;
    }

    .select_category ul > li {
        margin: 0 0 0;
    }

    .select_category ul > li a {
        padding: 5px 10px 5px 13px;
        font-size: 14px;
    }

    .select_category ul > li a:before {
        width: 5px;
        height: 5px;
        top: 18px;
        left: 0;
    }

    
    /* contact
       ================================================================== */
    .contact{
    	padding: 0 0 165px
    }
    
    /* form */
    .contact .top_note{
    	margin: 0 0 17px;
        font-size: 18px;
    }
    
    .contact .top_text{
        margin: 0 0 0;
    	font-size: 14px;
    }
    
    .contact .conf_text{
        margin: 0 0 0;
    	font-size: 15px;
    }
    
    .contact table{
        margin: 70px 0 0 15%;
        width: 85%;
    	font-size: 15px;
    }
    
    .contact table td,
    .contact table th{
    	font-size: 15px;
    }
    
    .contact th{
    	padding: 0 0 0;
    }
    
    .contact td{
    	padding: 20px 0 30px;
    }
    
    .contact output,
    .contact input,
    .contact select,
    .contact textarea{
    	font-size: 15px;
    	padding: 21px 30px;
        max-width: 700px;
    }
    
    .contact textarea{
        height: 235px;
    }
    
    .zas_btn_area{
    	padding: 40px 0 0;
    }
    
    .zas_btn_area button{
    	font-size: 16px;
    }
    
    .zas_btn_area button > span{
    	padding: 17px 0;
    	font-size: 16px;
    }
    
    .zas_btn_area .zas_btn01{
    	width: 280px;
    }


    /* thanks
       ================================================================== */
    .thanks h3{
        font-size: 30px;
    }

    .thanks p{
        margin: 40px 0 0;
    	font-size: 15px;
        line-height: 25px;
    }
    
    .thanks .go_top_btn{
    	margin: 50px auto 0;
    }


    /* list_page
       ================================================================== */
    .list_page .content_block > .inner{
        padding-top: 0;
        padding-bottom: 200px;
    }

    .list_page .list_page_title{
        margin: 0 0 50px;
        width: 90%;
    }

    .list_page .list_page_title h3{
        font-size: 25px;
    }
 	

    /* show_page
       ================================================================== */
    .show_page .content_block > .inner{
        padding-top: 0;
        padding-bottom: 165px;
    }


	/* pgn
	   ================================================================== */
	.pgn{
		margin: 60px 0 0;
		padding: 0;
	}

    .pgn nav > div > div > span > *{
        padding: 2px 0 0;
    	font-size: 15px;
    	width: 40px;
    	height: 40px;
    }


    /* detail_page
       ================================================================== */
    .detail_page{
    	margin: 0 0 0;
    }
    
    .detail_page .detail_box h1{
    	font-size: 25px;
    	margin: 0 0 10px;
    	padding: 0 10px 10px;
    }
    
    .detail_page .f_box{
    	margin: 20px 0 0;
    }
    
    .detail_page .hiduke{
        margin-right: 23px;
        font-size: 15px;
    }
    
    .detail_page .detail_categories > ul{
        font-size: 0;
    }
    
    .detail_page .detail_categories > ul > li{
        margin: 5px 5px 0 0;
        padding: 5px 15px;
        font-size: 13px;
    }
    
    .detail_page .photo{
    	margin: 20px 0 0;
    }
    	
    .detail_page .detail_body{
    	margin: 25px 0 0;
    }


	/* detail_btn_area
	   ================================================================== */
	.detail_btn_area{
		margin: 85px 0 0;
		font-size: 0;
		text-align: center;
	}
	
	.detail_btn_area .detail_arrow_btn{
		margin: 0;
	}

    .detail_btn_area .detail_arrow_btn.back{
    	margin: 0 2%;
    }
	
	.detail_btn_area .detail_arrow_btn a,
	.detail_btn_area .detail_arrow_btn button{
		padding: 0;
		width: 100%;
        height: 60px;
        line-height: 60px;
		text-align: center;
		font-size: 16px;
		letter-spacing: 0.10em;
    }


    /* index_about
       ================================================================== */
    .index_about{
        padding: 50px 0 0;
    }

    .index_about .logo{
        width: 120px;
    }

    .index_about .flex_box{
        margin: 70px 0 0;
        display: flex;
    }

    .index_about .flex_box .photo{
        margin: 0 0 0 -183px;
        width: 500px;
    }

    .index_about .flex_box .text_box{
        padding: 44px 0 0 40px;
        width: calc(100% - 500px + 183px);
        box-sizing: border-box;
    }

    .index_about .flex_box .text_box .ttl{
        font-size: 23px;
    }

    .index_about .flex_box .text_box p{
        margin: 14px 0 0;
        line-height: 25px;
    }

    .index_about .flex_box .more_btn{
        margin: 45px 0 0;
    }


    /* index_service
       ================================================================== */
    .index_service{
        padding: 76px 0 117px;
    }

    .index_service .list{
        margin: 35px 0 0;
    }

    .index_service .list > li{
        margin: 30px 0 0;
    }

    .index_service .list li a{
        padding: 20px 26px 20px 20px;
    }

    .index_service .list .flex{
        margin: 15px 0 0;
        display: flex;
    }

    .index_service .list .photo{
        width: 330px;
    }

    .index_service .list .right_box{
        padding: 0 0 0 20px;
        width: calc(100% - 330px);
        box-sizing: border-box;
    }

    .index_service .list .txt_list > span{
        padding: 8px 0;
        font-size: 14px;
        line-height: 25px;
    }

    .index_service .list .more_btn{
        margin: 25px 0 0;
    }


    /* index_advisor
       ================================================================== */
    .index_advisor{
        padding: 85px 0 125px;
    }

    .index_advisor .advisor_list{
        margin-top: 40px;
    }

    .index_advisor .more_btn{
        margin: 66px 0 0;
    }


    /* advisor_list
       ================================================================== */
    .advisor_list{
        margin-bottom: -50px;
    }

    .advisor_list > li{
        margin: 0 2% 50px 0;
        width: 18.4%;
    }

    .advisor_list > li:nth-child(3n+3){
        margin-right: 2%;
    }

    .advisor_list > li:nth-child(5n+5){
        margin-right: 0;
    }

    .advisor_list li .name{
        margin: 15px 0;
        font-size: 18px;
    }

    .advisor_list li .card_btn > span{
        padding: 0 10px;
        width: 110px;
        height: 35px;
        font-size: 13px;
    }


    /* advisor_list_page
       ================================================================== */
    .advisor_list_page{
        padding: 0 0 180px;
    }


    /* advisor_show_page
       ================================================================== */
    .advisor_show_page{
        padding: 30px 0 130px;
    }

    .advisor_show_page .top_box .thm{
        width: 300px;
    }

    .advisor_show_page .top_box .name_box{
        padding: 0 0 0 50px;
        width: calc(100% - 300px);
    }

    .advisor_show_page .top_box .name .jpn{
        font-size: 30px;
    }

    .advisor_show_page .top_box .name .eng{
        margin: 5px 0 0;
        font-size: 14px;
    }

    .advisor_show_page .profile_wrap{
        margin: 50px 0 0;
    }

    .advisor_show_page .box{
        margin: 35px 0 0;
    }

    .advisor_show_page .box .ttl{
        padding: 0 0 0 18px;
        font-size: 18px;
    }

    .advisor_show_page .box .ttl:before{
        width: 6px;
        height: 6px;
        top: 10px;
    }

    .advisor_show_page .profile p{
        margin: 10px 0 0;
        font-size: 15px;
    }

    .advisor_show_page .history p{
        margin: 10px 0 0;
        font-size: 14px;
        line-height: 28px;
    }

    .advisor_show_page .detail_btn_area{
        margin: 70px 0 0;
    }

    .advisor_show_page .key_object{
        top: -300px;
        right: -260px;
        width: 600px;
    }
	  

	/* design_table
	   ================================================================== */
	.design_table th,
	.design_table td,
    .design_table td p{
        font-size: 15px;
        line-height: 30px;
	}

	.design_table th{
		padding: 0 10px 0 50px;
		width: 23%;
	}
		
	.design_table .title_top th{
		padding-top: 25px;
	}

	.design_table td{
		padding: 25px 0;
	}

	.design_table td .border{
		padding: 0 20px 0 50px;
        min-height: 30px;
	}

    .design_table td .box{
    	margin-right: -20px;
    }

    .design_table td .box + .box{
    	margin-top: 15px;
        padding-top: 15px;
    }
    
    .design_table td .ttl + p{
    	margin: 7px 0 0;
    }

	.design_table td a:hover{
		text-decoration: underline;
	}


    /* company_block
       ================================================================== */
    .company_block{
        padding: 0 0 150px;
    }

    .company_block .top_txt{
        margin: 0 0 50px;
    }

    .company_block .map{
        margin: 50px 0 0;
    }

    .company_block .map iframe{
        height: 500px;
    }


    /* photos
       ================================================================== */
    .photos.bottom_photo{
        margin-bottom: 50px;
    }


    /* index_catch
       ================================================================== */
    .index_catch .center_flex{
        padding: 0;
        height: 410px;
    }

    .index_catch .logo{
        width: 315px
    }

    .index_catch .txt{
        margin: 55px 0 0;
        font-size: 22px;
        line-height: 44px;
    }

    .index_catch .key_object{
        bottom: -300px;
        left: -140px;
        width: 574px;
    }


    /* service_page
       ================================================================== */
    .service_page{
        margin: 0 0 0;
        padding: 0 0 200px;
    }


    /* service_kv */
    .service_kv{
        position: relative;
    }

    .service_kv .kv_top_box{
        margin: 0 auto;
        max-width: 2400px;
    }

    .service_kv .photo{
        margin: 0 0 0 auto;
        width: 70%;
    }

    .service_kv .kv_top_box .inner{
        margin-top: -185px;
    }

    .service_kv .title_box{
        padding: 53px 20px 23px 0;
        width: 55%;
        min-width: 500px;
    }

    .service_kv .title_box .ttl{
        padding: 0 0 25px;
        position: relative;
    }

    .service_kv .title_box .ttl .jpn{
        font-size: 33px;
    }

    .service_kv .title_box .ttl .eng{
        margin: 15px 0 0;
        font-size: 13px;
    }

    .service_kv .title_box .ttl:before{
        height: 45px;
        left: 30px;
    }

    .service_kv .kv_bottom_box{
        padding: 47px 0 0;
    }


    /* service_content */
    .service_content{
        margin: 50px 0 0;
    }

    .service_content .title > span{
        width: 500px;
        height: 60px;
        font-size: 18px;
    }

    .service_content .flex{
        margin: 50px 0 0;
        display: flex;
    }

    .service_content .flex .photo{
        width: 400px;
    }

    .service_content .flex .list{
        margin: -15px 0 0;
        padding: 0 0 0 25px;
        width: calc(100% - 400px);
        box-sizing: border-box;
    }

    .service_content .flex .list li{
        padding: 15px 0;
        font-size: 15px;
        line-height: 25px;
    }

    .service_content .value{
        margin: 70px 0 0;
        padding: 0 30px 40px;
    }

    .service_content .value .ttl{
        margin-top: -23px;
    }

    .service_content .value .ttl > span{
        width: 130px;
        height: 45px;
        font-size: 16px;
    }

    .service_content .value .list{
        margin: 10px 0 0;
    }

    .service_content .value .list li{
        padding: 12px 0 12px 50px;
        font-size: 15px;
        background-position: 16px 21px;
        background-size: 18px;
    }
    

}
