@charset "UTF-8";

/*メインイメージ
---------------------------------------------------------*/
.contentpage .m_img_area .m_img::before {
	display: block;
	content: "";
	padding-top: min(25.5%,340px);
}
.contentpage .m_title {
	top: 59.5%;
	color: #000000;
}
.contentpage .m_title .ft_bell {
	color: #FF813F;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.contentpage .m_img_area .m_img::before {
	padding-top: 34%;
}
}



/*下層共通
---------------------------------------------------------*/
/*パンクズ*/
.pankuzu {
	margin: 0 5% 60px 0;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
/*パンクズ*/
.pankuzu {
	margin: 0 5% 5% 0;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
/*パンクズ*/
.pankuzu {
	margin: 0 3% 8% 0;
}
}



/*check_list
---------------------------------------------------------*/
.check_list{
	font-size: 115%;
	line-height: 1.6em;
	letter-spacing: 0.15em;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.check_list li{
	font-weight: bold;
	width: 48.5%;
	padding-left: 2.1em;
	box-sizing: border-box;
	position: relative;
	margin-top: 1em;
}
.check_list li::before{
	position: absolute;
	content: "";
	background: url("../images/icon_check.svg") no-repeat left top;
	background-size: 100% 100%;
	width: 1.48em;
	height: 1.48em;
	left: 0;
	top:0.15em;
}
.check_list li:nth-child(-n + 2){
	margin-top: 0;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.check_list{
	letter-spacing: .05em;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.check_list{
	font-size: 110%;
	letter-spacing: 0.05em;
	display: block;
}
.check_list li{
	width: 100%;
	margin-top: 1em!important;
}
.check_list li:nth-child(-n + 1){
	margin-top: 0!important;
}
}



/*project
---------------------------------------------------------*/
.project .bg1{
	padding: min(110px,10vw) 0 min(165px,15vw);
	background: url("../images/8082_bg@2x.jpg") no-repeat center center;
	background-size: cover;
	color: #fff;
}
.project .bg1 .lead h3{
	font-size: min(333%,4.5vw);
	letter-spacing: 0.15em;
	line-height: 1.6em;
	margin-bottom: 0.4em;
}
.project .bg1 .lead h3 span{
   margin-left: -0.5em;
}
.project .bg1 .lead p{
	line-height: 2.1em;
}
.project .bg2{
	background-color: #796a57;
	padding: 0 0 min(125px,11vw);
	color: #fff;
	position: relative;
	z-index:1;
}
.project .bg2::before{
	position: absolute;
	content: "";
	background: url("../images/8082_bg_abs@2x.jpg") no-repeat right bottom;
	background-size: 100% auto;
	max-width: 750px;
	width: 50%;
	height: 100%;
	right: 0;
	border: 0;
	z-index: -1;
}
.project .bg2 .w1340 .tit{
	padding-top:  min(90px,8.1vw);
	position: relative;
} 
.project .bg2 h3{
	font-size:min(833%,11.25vw);
	letter-spacing: 0.1em;
	line-height: 1em;
	color: #afa69a;
	display: block;
	position: absolute;
	left: 0;
	top:0;
	transform: translateY(-47%);
}
.project .bg2 h3 span{
	color: #ff813f;
}
.project .bg2 h3 span.ft_min{
	color: #afa69a;
}
.project .bg2 h4{
	font-size: min(266%,3.6vw);
	letter-spacing: 0.15em;
	line-height: 1.625em;
	margin-bottom: 1.2em;
}
.project .bg2 h4 span{
	color: #ff813f;
	margin: 0 0.2em;
}
.project .bg2 .w1220 p{
	line-height: 2.1em;
}
.project .max_1500{
	position: relative;
	z-index: 1;
	padding-bottom: min(160px,14.5vw);
}
.project .max_1500 .abs_img{
	position: absolute;
	max-width: 570px;
	width: 38%;
	left: 0;
	top:0;
	transform:translateY(-11%);
}
.project .impact{
	max-width: 710px;
	width: 58.2%;
	margin-right: 0;
	margin-left: auto;
	padding-top: min(60px,5.5vw);
}
.project .impact .check_list{
	margin: 1.5em 0;
}
.project .impact .ft_min.orange{
	font-size: min(266%,3.6vw);
	letter-spacing: 0.15em;
	line-height: 1.5em;
	margin-top: 0.5em;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.project .bg1 .lead h3{
	letter-spacing: 0.05em;
}
.project .bg2 h4{
	letter-spacing: 0.05em;
}
.project .impact{
	max-width:100%;
	width: 100%;
}
.project .impact p{
	text-align: center;
}
.project .impact p:first-child,
.project .impact .check_list{
	max-width: 710px;
	width: 58.2%;
	margin-right: 0;
	margin-left: auto;
	text-align: left;
}
.project .impact .ft_min.orange{
	letter-spacing: 0.05em;
}
.project .max_1500{
	position: relative;
	z-index: 1;
	padding-bottom: min(160px,9vw);
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.project .bg1{
	padding: 13% 0 18%;
}
.project .bg1 .lead h3{
	font-size:150%;
	letter-spacing: 0.05em;
}
.project .bg1 .lead p{
	line-height: 1.8em;
}
.project .bg2{
	padding: 0 0 20%;
}
.project .bg2::before{
	width: 80%;
	height: 100%;
}
.project .bg2 .w1340 .tit{
	padding-top:  min(90px,8.1vw);
	position: relative;
} 
.project .bg2 h3{
	font-size:275%;
}
.project .bg2 h4{
	font-size: 140%;;
	letter-spacing: 0.05em;
	margin-bottom:0.8em;
}
.project .bg2 .w1220 p{
	line-height: 1.8em;
}
.project .max_1500{
	padding-bottom: 10%;
}
.project .max_1500 .abs_img{
	position: static;
	width: 65%;
	transform:translateY(0);
	margin-top: -5vw;
}
.project .impact{
	max-width:100%;
	width: 100%;
	margin-right: 0;
	margin-left: auto;
	padding-top: 8%;
}
.project .impact .check_list{
	margin: 1.2em 0;
}
.project .impact .ft_min.orange{
	font-size: 140%;
	letter-spacing: 0.05em;
}
}



/*action
---------------------------------------------------------*/
.action .bg{
	background: #f1efe1;
	padding-bottom: min(80px,7vw);
	position: relative;
	z-index: 1;
}
.action .bg::before{
	font-size:min(833%,11.25vw);
	letter-spacing: 0.1em;
	line-height: 1em;
	position: absolute;
	content: "";
	background: #fff;
	width: 100%;
	height: 0.45em;
	left: 0;
	right: 0;
	margin: auto;
	top:0;
	z-index: -1;
}
.action h3{
	font-size: min(833%,12vw);
	letter-spacing: 0.1em;
	line-height: 1em;
	color: #ff813f;
	text-align: center;
	margin-bottom: 0.25em;
}
.action h4{
	font-size: min(266%,3.6vw);
	letter-spacing: 0.15em;
	line-height: 1.5em;
	text-align: center;
	margin-bottom: 1em;
}
.action .flt_box .img_l{
	max-width: 497px;
	width: 41%;
	float: left;
}
.action .flt_box .txt_r{
	max-width: 670px;
	width: 55%;
	float: right;
	line-height: 2.1em;
}
.action .flt_box .txt_r span{
	color: #fff;
	font-weight: bold;
	background: #ff813f;
	padding: 0.15em;
}
/*続きを読む（アコーディオン）*/
.action .accordion-box {
	position: relative;
}
.action .accordion-box label {
	height: 100%;
	cursor: pointer;
	text-align: center;
	position: absolute;
	z-index: 1;
	bottom: 0;
	width: 100%;
	left: 0;
	right: 0;
	background: linear-gradient(
		to bottom,
		rgba(241, 239, 225, 0) 0%,
		rgba(241, 239, 225, 1) 60%
	);
	
}
.action .accordion-box label p {
	display: block;
	position: absolute;
	width: 100%;
	max-width: 16.471em;
	height: 3.54em;
	box-sizing: border-box;
	left: 0;
	right: 0;
	top:1.9em;
	margin: 0 auto;
	font-size: 113.4%;
	letter-spacing: 0.2em;
	text-align: center;
	line-height: 1em;
	background-color: #fff;
	padding: 1.27em;
	border-radius: 1.77em;
	transition: 0.8s;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.action .accordion-box label p.btn_close {
	display: none;
}
.action .accordion-box label p.btn_close::after {
	background-image: url("../images/staff/minus@2x.png");
}
.action .accordion-box label p:hover{
	font-size: 125%;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
}
.action .accordion-box label p span{
	padding-right: 3.3em;
	position: relative;
}
.action .accordion-box label p span::before{
	position: absolute;
	content: "";
	background-repeat: no-repeat;
	background-position: right center;
	background-size: 100% 100%;
	right: 0;
	top:50%;
	transform: translateY(-50%);
	width: 2.5294117647em;
	height: 2.5294117647em;
}
.action .accordion-box label p.btn_open span::before{
	background-image: url("../images/icon_open.svg")
}
.action .accordion-box label p.btn_close span::before{
	background-image: url("../images/icon_close.svg")
}
.action .accordion-box input {
	display: none;
}
/* 閉じている状態 */
.action .accordion-box .accordion-container {
	overflow: hidden;
	height: 140px;
	transition: height 1s ease, padding-bottom 1s ease;
}
/* 開いた状態 */
.action .accordion-box input:checked ~ .accordion-container {
	padding-bottom: 10.5em;
}
/* 開いたらグラデーションを消す */
.action .accordion-box input:checked + label {
	background: inherit;
}
.action .accordion-box input:checked + label p.btn_open {
	display: none;
}
.action .accordion-box input:checked + label p.btn_close {
	display: block;
	top:auto;
	bottom: 0;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.action h4{
	letter-spacing: 0.05em;
}
.action .flt_box .img_l{
	margin-right: 4%;
	margin-bottom: 1em;
}
.action .flt_box .txt_r{
	max-width: 100%;
	width: 100%;
	float: none;
}
/*続きを読む（アコーディオン）*/
.action .accordion-box label p {
	font-size: 110%;
}
.action .accordion-box label p:hover{
	font-size: 121.6%;
}
.action .accordion-box input {
	display: none;
}
/* 開いた状態 */
.action .accordion-box input:checked ~ .accordion-container {
	padding-bottom: 14.5em;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.action .bg{
	padding-bottom: 10%;
}
.action .bg::before{
	font-size: 275%;
}
.action h3{
	font-size: 275%;
}
.action h4{
	font-size: 140%;
	letter-spacing: 0.05em;
}
.action .flt_box .img_l{
	width: 80%;
	float: none;
	margin: 0 auto 5vw;
}
.action .flt_box .txt_r{
	max-width: 100%;
	width: 100%;
	float: none;
	line-height: 1.8em;
}
/*続きを読む（アコーディオン）*/

.action .accordion-box label p {
	font-size: 105%;
}
.action .accordion-box label p:hover{
	font-size: 117%;
}

.action .accordion-box input {
	display: none;
}
/* 閉じている状態 */
.action .accordion-box .accordion-container {
	height: 6em;
}
/* 開いた状態 */
.action .accordion-box input:checked ~ .accordion-container {
	height: 100%;
	padding-bottom: 5em;
}
/* 開いたらグラデーションを消す */
.action .accordion-box input:checked + label {
	background: inherit;
}
.action .accordion-box input:checked + label p.btn_open {
	display: none;
}
.action .accordion-box input:checked + label p.btn_close {
	display: block;
	top:auto;
	bottom: 0;
}
}



/*prevention
---------------------------------------------------------*/
.prevention .bg{
	padding: min(430px,28.666vw) 0 min(90px,8vw);
	position: relative;
	z-index: 1;
}
.prevention .bg::before{
	position: absolute;
	content: "";
	background: url("../images/prevention_bg@2x.jpg") no-repeat center top;
	background-size: 100% auto;
	width: 100%;
	height: 33.3333vw;
	max-height: 500px;
	left: 0;
	right: 0;
	margin: auto;
	top:0;
	z-index: -1;
}
.prevention .radius_box{
	background-color: #fff;
	padding:  min(80px,7vw) 4% min(90px,8vw);
	box-sizing: border-box;
	border-radius: min(70px,6vw);
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
	text-align: center;
}
.prevention .radius_box h3{
	font-size: min(266%,3.6vw);
	letter-spacing: 0.15em;
	line-height: 1.5em;
	margin-bottom: 0.8em;
}
.prevention .radius_box .img{
	max-width: 559px;
	width: 70%;
	margin: min(60px,5vw) auto;
	text-align: center;
}
.prevention .radius_box p.ft_min.orange{
	font-size: 134%;
	letter-spacing: 0.15em;
	line-height: 1.5em;
	margin-top: 0.8em;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.prevention .radius_box h3{
    letter-spacing: 0.05em;
}
.prevention .radius_box p.ft_min.orange{
	letter-spacing: 0.05em;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.prevention .bg{
	padding: min(430px,28.666vw) 0 12%;
}

.prevention .radius_box{
	padding: 10% 5%;
	border-radius: 6vw;
}
.prevention .radius_box h3{
	font-size: 140%;
    letter-spacing: 0.05em;
}
.prevention .radius_box .img{
	width: 100%;
	margin: 8% auto;
}
.prevention .radius_box p.ft_min.orange{
	font-size: 110%;
	letter-spacing: 0.05em;
}
}




/*foundation
---------------------------------------------------------*/
.foundation{
	padding:min(110px,10vw)  0;
	background-color: #ff8e52;
	position: relative;
	z-index: 1;
	overflow: hidden;
}
.foundation::before{
	position: absolute;
	content: "";
	background: url("../images/foundation_abs_bg@2x.png") no-repeat left top;
	background-size: 100% auto;
	width: 75.4vw;
	max-width: 1131px;
	height: 75.4vw;
	max-height: 1131px;
	left: 0;
	top:0;
	z-index: -1;
}
.foundation .tit{
	font-size: min(333%,4.5vw);
	letter-spacing: 0.15em;
	line-height: 1.6em;
	color: #fff;
}
.foundation .tit p{
	font-size: 40%;
	letter-spacing: 0.1em;
	line-height: 1em;
	margin-bottom: 1em;
}
.foundation .foundation_list{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
.foundation .foundation_list li{
	background-color: #fff;
	width: 31.15%!important;
	margin-right: 3.275%!important;
	margin-top: 3.275%;
	font-size:min(100%,1.35vw);
	transition: 1s;
}
.foundation .foundation_list li:nth-child(-n+ 3){
	margin-top: 0;
}
.foundation .foundation_list li:nth-child(3n),
.foundation .foundation_list li:last-child{
	margin-right: 0!important;
}
.foundation .foundation_list li .flex{
	display: flex;
	justify-content: space-between;
	flex-direction: column;
	width: 100%;
	height: 100%;
}
.foundation .foundation_list li .con{
	box-sizing: border-box;
	width: 100%;
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}
.foundation .foundation_list li .btn{
	font-size: 113.4%;
	letter-spacing: 0.2em;
	line-height: 1em;
	text-align: right;
	background-color: #f1efe1;
	padding: 1.2em 0.6em;
	box-sizing: border-box;
	width: 100%;
}
.foundation .foundation_list li .btn p{
	padding-right: 3.3em;
	position: relative;
}
.foundation .foundation_list li .btn p::before{
	position: absolute;
	content: "";
	background-repeat: no-repeat;
	background-position: right center;
	background-size: 100% 100%;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 2.5294117647em;
	height: 2.5294117647em;
}
.foundation .foundation_list li .close_con .btn p::before{
	background-image: url("../images/icon_open.svg");
}
.foundation .foundation_list li .open_con .btn p::before{
	background-image: url("../images/icon_close.svg");
}
.foundation .foundation_list input {
	display: none;
}
.foundation .foundation_list label {
	cursor: pointer;
	display: block;
	height: 100%;
	position: relative;
	z-index: 1;
}
.foundation .foundation_list label > div{
	transition: all 0.8s;
}
.foundation .foundation_list li:hover label .close_con{
	opacity: 0.6;
}
.foundation .foundation_list label .close_con .con{
	padding: 2.6em 0;
	text-align: center;
}
.foundation .foundation_list label .close_con .con .icon{
	font-size:200%;
	letter-spacing: 0.1em;
	line-height: 1.5em;
	max-width: 160px;
	width: 5.3334em;
	margin: 0 auto 0.5em;
}
.foundation .foundation_list label .close_con .con dl{
	font-size: 200%;
	letter-spacing: 0.1em;
	line-height: 1.5em;
	text-align: center;
	color: #ff7228;
}
.foundation .foundation_list label .close_con .con dl dt{
	line-height: 1em;
	letter-spacing: 0.1em;
	color: #b89b4e;
	margin-bottom: 0.15em;
}
.foundation .foundation_list input + label .close_con {
	display: block;
}
.foundation .foundation_list input + label .open_con {
	display: none;
	position: absolute;
	inset: 0;
}
.foundation .foundation_list input:checked + label .close_con {
	position: absolute;
	left: 0;
	right: 0;
	margin: auto;
	top:0;
	z-index: -1;
}
.foundation .foundation_list input:checked + label .open_con {
	display: block;
	position: relative;
}
.foundation .foundation_list input:checked + label .close_con .btn{
	opacity: 0;
}
.foundation .foundation_list input:checked + label .open_con .con{
	background-color: rgba(255,255,255,0.8);
	hanging-punctuation: 100%;
	padding: 0 5%;
}
.foundation .foundation_list input:checked + label .open_con .con p{
	max-width: 325px;
	margin: 0 auto;
	line-height: 2em;
}
.foundation .last_txt{
	font-size: min(200%,2.7vw);
	letter-spacing: 0.1em;
	line-height: 1.5em;
	color: #fff;
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.foundation .tit{
	letter-spacing: 0.05em;
}
.foundation .foundation_list li{
	width: 32%!important;
	margin-right: 2%!important;
	margin-top: 2%!important;
}
.foundation .foundation_list li:nth-child(3n),
.foundation .foundation_list li:last-child{
	margin-right: 0!important;
}
.foundation .foundation_list label .close_con .con{
	padding: 4.5em 0;
}
.foundation .foundation_list input:checked + label .open_con .con p{
	font-size: 115%;
	letter-spacing: 0.1em;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.foundation{
	padding:13% 0;
}
.foundation .tit{
	font-size:150%;
	letter-spacing: 0.05em;
}
.foundation .tit p{
	font-size: 50%;
}
.foundation .foundation_list {
	display: block;
}
.foundation .foundation_list li {
	width: 100%!important;
	margin-right: 0!important;
	margin-top: 5%!important;
	height: auto !important;
	font-size: 100%;
	letter-spacing: 0.05em;
	line-height: 1.8em;
}
.foundation .foundation_list li:first-child {
	margin-top: 0!important;
}
.foundation .foundation_list label {
	height: auto;
	display: block;
}
.foundation .foundation_list label .close_con .con .icon{
	font-size:170%;
	letter-spacing: 0.05em;
}
.foundation .foundation_list label .close_con .con dl{
	font-size: 170%;
	letter-spacing: 0.05em;
}
/* 閉じている状態 */
.foundation .foundation_list input + label .close_con {
	display: block;
	position: static;
}
/* 開いている状態 */
.foundation .foundation_list input + label .open_con {
	display: none;
	position: static;
	inset: auto;
	width: auto;
}
/* チェック時 */
	.foundation .foundation_list input:checked + label .close_con {
	position: absolute;
	left: 0;
	right: 0;
	margin: auto;
	top:0;
	z-index: -1;
}
.foundation .foundation_list input:checked + label .open_con {
	display: block !important;
	position: static !important;
	inset: auto !important;
	width: auto !important;
}
/* flexの高さ固定もスマホでは解除 */
.foundation .foundation_list li .flex {
	height: auto;
}
.foundation .foundation_list li .con {
	flex: none;
	padding: 6% 5%!important;
	height: 70vw;
}
.foundation .foundation_list input:checked + label .open_con .con{
	padding: 6% 5%!important;
}
.foundation .foundation_list input:checked + label .open_con .con p{
	max-width: 100%;
	line-height: 1.8em;
}
.foundation .last_txt{
	font-size: 140%;
	letter-spacing: 0.05em;
}
}




/*philosophy
---------------------------------------------------------*/
.philosophy .w1220{
	padding-top: min(90px,8vw);
	padding-bottom: min(140px,12.5vw);
}
.philosophy h3{
	font-size: min(333%,4.5vw);
	letter-spacing: 0.15em;
	line-height: 1.6em;
}
.philosophy .flt_box .img_l,
.philosophy .flt_box .img_r{
	max-width: 460px;
	width: 38%;
}
.philosophy .flt_box .txt_l,
.philosophy .flt_box .txt_r{
	max-width: 696px;
	width: 58%;
}
.philosophy .flt_box .img_l,
.philosophy .flt_box .txt_l{
	float: left;
}
.philosophy .flt_box .img_r,
.philosophy .flt_box .txt_r{
	float: right;
}
.philosophy .flt_box .flex{
	display: flex;
	justify-content: space-between;
}
.philosophy .flt_box .flex h4{
	font-size: min(267%,3.6vw);
	line-height: 1em;
	letter-spacing: 0.2em;
	writing-mode: vertical-rl;
	padding-right: 1em;
	flex-shrink: 0;
}
.philosophy .flt_box .flex .txt{
	flex: 1;
	min-width: 0;
}
.philosophy .flt_box .flex .txt .check_list{
	margin: 1.5em 0;
}
.philosophy .flt_box .flex .txt .check_list li:nth-child(odd){
	width: 43%;
}
.philosophy .flt_box .flex .txt .check_list li:nth-child(even){
	width: 54%;
}
.philosophy .flt_box .flex .txt dt{
	font-size: min(167%,2.4vw);
	letter-spacing: 0.15em;
	line-height: 1.5em;
	margin-bottom: 0.8em;
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.philosophy .flt_box .flex .txt .check_list{
	display: block;
}
.philosophy .flt_box .flex .txt .check_list li{
	width: 100%!important;
	margin-top: 1em!important;
}
.philosophy .flt_box .flex .txt .check_list li:first-child{
	margin-top: 0!important;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.philosophy .w1220{
	padding-top: 12%;
	padding-bottom: 18%;
}
.philosophy h3{
	font-size: 150%;
    letter-spacing: 0.05em;
}
.philosophy .flt_box .img_l,
.philosophy .flt_box .img_r{
	max-width: 460px;
	width: 80%;
	margin: 0 auto 6vw;
	float: none;
}
.philosophy .flt_box .txt_l,
.philosophy .flt_box .txt_r{
	max-width: 100%;
	width:  100%;
	float: none;
}
.philosophy .flt_box .flex{
	display: block;
}
.philosophy .flt_box .flex h4{
	font-size:190%;
	letter-spacing: 0.1em;
	list-style-position: 1.5em;
	writing-mode: horizontal-tb;
	padding-right: 0;
	margin-bottom: 0.3em;
}
.philosophy .flt_box .flex .txt .check_list{
	margin: 1.2em 0;
	width: 100%;
}
.philosophy .flt_box .flex .txt .check_list li{
	width: 100%!important;
	margin-top: 1em!important;
}
.philosophy .flt_box .flex .txt .check_list li:first-child{
	margin-top: 0!important;
}
.philosophy .flt_box .flex .txt dt{
	font-size:120%;
	letter-spacing: 0.1em;
	line-height: 1.5em;
	margin-bottom: 0.8em;
}
}



/*message
---------------------------------------------------------*/
.message .bg{
	background: #fffbf1;
	padding: min(40px,3.6vw) 0 min(100px,9vw);
	position: relative;
	max-width: 1450px;
	width: 97%;
	margin-left: auto;
	margin-right: auto;
	z-index: 1;
}
.message .bg::before{
	position: absolute;
	content: "";
	background: url("../images/message_bg_abs@2x.jpg") no-repeat right bottom;
	background-size: 100% auto;
	width: 51.724138%;
	max-width: 750px;
	max-height: 480px;
	height: 100%;
	right: 0;
	bottom: 0;
	z-index: -1;
}
.message .flot_box .txt_l{
	float: left;
	width: 45%;
	padding-top: min(50px,4vw)
}
.message .flot_box .txt_l h3{
	font-size: min(267%,3.4vw);
	line-height: 1.75em;
	letter-spacing: 0.15em;
	margin-bottom: 0.8em;
}
.message .flot_box .txt_l p{
	line-height: 2.1em;
}
.message .flot_box .img_r{
	float: right;
	max-width: 640px;
	width: 52.46%;
}
.message .flot_box .img_r ul{
	display: flex;
	position: relative;
	z-index: 1;
}
.message .flot_box .img_r ul::before{
	position: absolute;
	content: "";
	background: url("../images/message_abs@2x.png") no-repeat right top;
	background-size: 100% auto;
	max-width: 705px;
	width: 110.15625%;
	aspect-ratio: 705 / 225;
	right: 0;
	top:0;
	transform: translate(47.66%, -48.89%);
	z-index: -1;
}
.message .flot_box .img_r ul li:first-child{
	max-width: 360px;
	width: 56.25%;
}
.message .flot_box .img_r ul li:last-child{
	max-width: 2500px;
	width: 39.0625%;
	position: absolute;
	display: block;
	right: 0;
	top:60%;
	transform: translateY(-50%);
}
.message .lead{
	font-size: min(200%,2.7vw);
	letter-spacing: 0.15em;
	line-height: 1.5em;
}
.message .lead dt{
	font-size: 170%;
	letter-spacing: 0.15em;
	line-height: 1.5em;
	margin-bottom: 0.25em;
}
.message .director_message{
	padding:  min(150px,13vw) 0 min(120px,10vw);
}
.message .director_message > h3{
	font-size: min(1.9vw,120%);
	letter-spacing: 0.15em;
	line-height: 1.8em;
	text-align: center;
	margin-bottom: 1.5em;
	position: relative;
}
.message .director_message > h3::before{
	position: absolute;
	content: "";
	background: url("../images/message_tit_l.svg") no-repeat left top;
	background-size: 100% 100%;
	width: 1.78em;
	height: 1.78em;
	right: calc(50% + 11em);
	top:0;
}
.message .director_message > h3::after{
	position: absolute;
	content: "";
	background: url("../images/message_tit_r.svg") no-repeat right top;
	background-size: 100% 100%;
	width: 1.78em;
	height: 1.78em;
	left: calc(50% + 11em);
	top:0;
}
.message .bnr_message{
	width: 64%;
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
}
.message .bnr_message a {
	position: relative;
	display: block;
	color:#fff;
	line-height: 2;
	letter-spacing: .15em;
	padding: 2em;
	overflow: hidden;
	z-index: 1;
}
.message .bnr_message a::before {
	position: absolute;
	content: "";
	background: url("../images/bnr_message_bg@2x.jpg") no-repeat center center;
	background-size: cover;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	transition: all .5s;
	z-index: -1;
}
.message .bnr_message a > div{
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}
.message .bnr_message a > div .flex{
	display: flex;
	align-items: flex-end;
}
.message .bnr_message a > div dl{
	margin-right: 1em;
}
.message .bnr_message a > div dt{
	font-size: 270%;
	letter-spacing: 0.15em;
	line-height: 1em;
	margin-bottom: 0.25em;
}
.message .bnr_message a > div .com_ccl{
	margin-bottom: 0.3em;
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.message .flot_box .txt_l{
	float: none;
	width: 100%;
}
.message .flot_box .txt_l h3{
	font-size: min(267%,3.6vw);
	letter-spacing: 0.1em;
}
.message .flot_box .img_r{
	width: 50%;
	margin-left: 4%;
	margin-bottom: 1em;
}
.message .lead{
	letter-spacing: 0.1em;
}
.message .lead dt{
	letter-spacing: 0.1em;
}
.message .bnr_message a {
	letter-spacing: .1em;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.message .bg{
	padding: 6% 0 12%;
}
.message .bg::before{
	width: 60%;
}
.message .flot_box .txt_l{
	float: none;
	width: 100%;
	padding-top: 0;
}
.message .flot_box .txt_l h3{
	font-size: 140%;
	letter-spacing: 0.05em;
	line-height: 1.5em;
}
.message .flot_box .txt_l p{
	line-height: 1.8em;
}
.message .flot_box .img_r{
	float: none;
	width: 100%;
	margin: 0 auto 5vw;
}
.message .flot_box .img_r ul{
	display: flex;
	position: relative;
	z-index: 1;
}
.message .flot_box .img_r ul::before{
	position: absolute;
	content: "";
	background: url("../images/message_abs@2x.png") no-repeat right top;
	background-size: 100% auto;
	max-width: 705px;
	width: 110.15625%;
	aspect-ratio: 705 / 225;
	right: 0;
	top:0;
	transform: translate(47.66%, -48.89%);
	z-index: -1;
}
.message .flot_box .img_r ul li:first-child{
	max-width: 360px;
	width: 56.25%;
}
.message .flot_box .img_r ul li:last-child{
	max-width: 2500px;
	width: 39.0625%;
	position: absolute;
	display: block;
	right: 0;
	top:60%;
	transform: translateY(-50%);
}
.message .lead{
	font-size: 120%;
	letter-spacing: 0.05em;
}
.message .lead dt{
	font-size: 160%;
	letter-spacing: 0.05em;
}
.message .director_message{
	padding: 12% 0;
}
.message .director_message > h3{
	font-size: 90%;
	letter-spacing: 0.1em;
	margin-bottom: 1em;
}
.message .director_message > h3::before{
	right: calc(50% + 9em);
}
.message .director_message > h3::after{
	left: calc(50% + 9em);
}
.message .bnr_message{
	width: 90%;
}
.message .bnr_message a {
	font-size: 80%;
	line-height: 1.5;
	letter-spacing: .05em;
	padding: 1.5em;
}
.message .bnr_message a > div{
	max-width:100%;
}

.message .bnr_message a > div dt{
	margin-bottom: 0.15em;
}
}

