@charset "UTF-8";


:root{
	--user-color-main: #cd4a38;
	--user-color-main-font: #000000;
	--user-color-accent: #f0f0f0;
	--user-color-accent-font: #cd4a38;
	--user-color-point: #333333;
	--user-color-point-font: #ffffff;
	--user-color-background: #ffffff;
}



/*
Theme Name: Wavy
Author: Aimi Kinjo
Version: 1.0
*/
body{margin:0}

/*--------------------------------------------------------------------------------
 *
 *
 * リセット
 *
 *
--------------------------------------------------------------------------------*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin:0; padding:0; border:0; font:inherit; font-size:100%; vertical-align:baseline; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display:block; }
html, body { width:100%; height:100%; line-height:1; }
ol, ul { list-style:none; }
blockquote, q {quotes:none; }
blockquote:before, blockquote:after, q:before, q:after { content:''; content:none; }
table { border-collapse:collapse; border-spacing:0; }
* { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; -o-box-sizing:border-box; -ms-box-sizing:border-box; box-sizing:border-box; }

/*--------------------------------------------------

   Clearfix

--------------------------------------------------*/
.cf { zoom:1; } .cf:before,.cf:after { content:""; display:table; } .cf:after { clear:both; }

/*--------------------------------------------------------------------------------
 *
 *
 *
 *
 * 基本設定
 *
 *
 *
 *
--------------------------------------------------------------------------------*/
html { overflow:auto; }
@media screen and (max-width:1000px){ body { width:1000px; } }
@media screen and (max-width:768px){ body { width:100%; background:none; } }
body {font-family:"メイリオ" , Meiryo , "ヒラギノ角ゴPro W3" , "Hiragino Kaku Gothic Pro" , "ＭＳ Ｐゴシック" , sans-serif; font-size:100%; line-height:1.75; font-weight:normal; /*color:#000*/; background:#fff; position:relative; }
a:link,
a:visited { text-decoration:none; transition:.3s ease; }
a:hover,
a:active { ; text-decoration:none; transition:.3s ease; opacity: 1;}
img { max-width:100%; height:auto; vertical-align:top; backface-visibility:hidden; }
a:link img,
a:visited img {opacity:1.0; transition:.3s ease; }
a:hover img,
a:active img {opacity: 0.6; transition: .3s ease; }
video::-webkit-media-controls-enclosure { overflow:hidden; }
video::-webkit-media-controls-panel { width: calc(100% + 30px); }
b, strong { font-weight: bold; }
em { font-style: italic; }

/* ------------------------------小見出し属性------------------------------　*/
p { font-size:14px; margin:0 0 20px 0; padding:0; line-height:2; display:block; }
ul { margin:0; padding:0; }
li { margin:0; padding:0; font-size:14px; }
i:not(.fa*) { padding-right:6px; }
img { max-width:100%; height:auto; display:block; }
@media screen and (max-width:768px){
	p { font-size:12px; }
	li { font-size:12px; }
}

.pc { display:block!important; }
.sp { display:none!important; }
@media screen and (max-width:768px){
	.pc { display:none!important; }
	.sp { display:block!important; }
}

/*--------------------------------------------------------------------------------
 *
 * ヘッダー
 *
--------------------------------------------------------------------------------*/

/* ------------------------------ロゴ・メニューバーエリア------------------------------　*/
header { margin: 0 auto; position: fixed; z-index: 1000; width: 100%; height: auto; transition: .8s ease; background-color: rgba(0,0,0,0.7);}
/*
header + * { margin-top: 70px!important; padding-top: 0!important; }
@media screen and (max-width:768px) {
  header + * { margin-top: 60px!important; }
}
*/
header + main, header + div.all-wrapper, header + .article-detail, header + #article-detail { padding-top: 100px; }
@media only screen and (max-width: 767px) {
    header + main, header + div.all-wrapper, header + .article-detail, header + #article-detail { padding-top: 60px; }
}
header .inner {width:100%; display: flex; align-items: center; justify-content: center;}
header img { max-width: 240px;}
header #h2 { position:absolute; left:150px; top:-6px; font-size:10px; color:#ffffff; text-align:left; margin:0; padding:0; font-weight:normal; }
img.header-logo.js-image{  margin-top: 0;}

@media screen and (max-width:766px){
	header { background:none; width:100%; height:auto; background:none; height: 60px;}
	header .inner { width:100%; height:auto; }
}

/* ------------------------------ヘッダー切り替え------------------------------　*/
#header { -webkit-transition-property: top; -o-transition-property: top; transition-property: top; -webkit-transition-duration: .3s;-o-transition-duration: .3s; transition-duration: .3s;}
#header.is_show { top: 0; background: rgba(0,0,0,0.7);}

@media screen and (max-width:766px){
	#header.is_show {background: none;}
}

/*--------------------------------------------------------------------------------
 *
 * トップメインビジュアル
 *
--------------------------------------------------------------------------------*/

/* ------------------------------メインビジュアル------------------------------　*/
#kv { width:100%; height:80vh; background-attachment:fixed; }
.contents-bg {background-color: rgba(0,0,0,0.2);}
.bg-slider {background-position:center center; background-size:cover; display:flex; align-items:center; justify-content:center;}
.bg-slider-disabled { height: 80vh; background: url(/templates/28/images/header01.jpg) 50% 50% / cover repeat fixed padding-box border-box rgba(0, 0, 0, 0); }

@media screen and (max-width:766px){
	#kv { height:80vh; padding-top:60px; background-attachment:scroll;display: block; }
}

/*キャッチコピー左*/
#kv #kv_inner_left { width:1000px; height:auto; margin:0 auto; padding:0; display:-webkit-box; display:-ms-flexbox; display:flex;
	-webkit-box-pack:left; -ms-flex-pack:left; justify-content:left;/*左右左揃え*/
 -webkit-box-align:center; -ms-flex-align:center; align-items:center;/*上下中央揃え*/ }
#kv #kv_inner_left .catch_copy_left { font-size:50px; text-align:left; font-weight:bold; color:#fff; padding-top:40px; text-shadow:0 3px 3px rgba(0,0,0,0.3); padding-left: 8vw; padding-right: 8vw; }

@media screen and (max-width:766px){
	#kv #kv_inner_left { width:100%; height: 100%;}
	#kv #kv_inner_left .catch_copy_left { width:100%; font-size:7vw; text-align:center; padding-top:0px; padding-left: 4vw; padding-right: 4vw; }
}

/*キャッチコピー中央*/
#kv #kv_inner_center { width:1000px; height:auto; margin:0 auto; padding:0; display:-webkit-box; display:-ms-flexbox; display:flex;
	-webkit-box-pack:center; -ms-flex-pack:center; justify-content:center;/*左右中央揃え*/
 -webkit-box-align:center; -ms-flex-align:center; align-items:center;/*上下中央揃え*/ }
#kv #kv_inner_center .catch_copy_center { font-size:50px; text-align:center; font-weight:bold; color:#fff; padding-top:40px; text-shadow:0 3px 3px rgba(0,0,0,0.3); }

@media screen and (max-width:766px){
	#kv #kv_inner_center { width:100%; height: 100%;}
	#kv #kv_inner_center .catch_copy_center { width:100%; font-size:7vw; text-align:center; padding-top:0px; }
}

/*キャッチコピー右*/
#kv #kv_inner_right { width:1000px; height:auto; margin:0 auto; padding:0;  }
#kv #kv_inner_right .catch_copy_right { font-size:50px; text-align:right; font-weight:bold; color:#fff; padding-top:40px; text-shadow:0 3px 3px rgba(0,0,0,0.3); padding-right: 20px;}

@media screen and (max-width:766px){
	#kv #kv_inner_right { width:100%; height: 100%;display:-webkit-box; display:-ms-flexbox; display:flex;
	-webkit-box-pack:right; -ms-flex-pack:right; justify-content:right;/*左右中央揃え*/
 -webkit-box-align:center; -ms-flex-align:center; align-items:center;/*上下中央揃え*/ }
	#kv #kv_inner_right .catch_copy_right { width:100%; font-size:7vw; text-align:center; padding-top:0px; }
}

/*--------------------------------------------------------------------------------
 *
 * グローバルナビゲーション
 *
--------------------------------------------------------------------------------*/

/* ------------------------------グローバルナビゲーション（PC）------------------------------　*/
nav#header__nav { clear:both; margin:0 auto; padding:0; z-index:999;  display: inline-table; width: 70%;}
nav#header__nav ul { width:auto; margin:0; padding:0; float:right;}
nav#header__nav ul li { padding:0 ; }
nav#header__nav ul li a { display: block; padding: 24px 30px; width: 100%; box-sizing: border-box; transition: background .25s cubic-bezier(.165, .84, .44, 1); color: #fff;}
nav#header__nav ul li a:before { padding-right:5px; }
nav#header__nav ul li a:hover{ text-decoration:none;}
nav#header__nav ul { display:-webkit-box; display:-ms-flexbox; display:flex;
-webkit-box-pack:end; -ms-flex-pack:end; justify-content:flex-end; }
nav#header__nav ul li  span {display: block;line-height: 1.2;text-align: center;}
.header-nav-title-en {font-weight: 300; font-size: 15px; letter-spacing: .06em; margin-top: 10px; font-weight: bold;}
.header-nav-title-jp {font-size: 10px; }
#hdrLeft { padding: 8px 0 8px 15px; width: 30%;}

@media screen and (max-width: 966px) {
	#hdrLeft {display: none !important;}
}

/* ------------------------------グローバルナビゲーション（モバイル）------------------------------　*/
	#header .slicknav_menu { background:rgba(0,0,0,0.8); width:100%; height:auto; margin:0; position:fixed; top:0; }
	#header #slicknav_nav a { text-decoration:none; }
	#header ul { list-style:none; }
	#header ul { width:100%; background:none; }
	.slicknav_nav #header ul li { width:100%; text-shadow:none; border:none; padding:0; text-align:left; padding:0; float:left; }
	#header ul li a { display:block; height:auto; padding:20px 0 20px 15px; font-size: 15px; font-weight: bold; color: #fff;}
	#header ul li a:before { content:none; padding-right:0; }
	#header ul li  span {display: block;line-height: 1.2;text-align: left;}
	.header-nav-title-en {font-weight: 300; font-size: 15px; letter-spacing: .06em; margin-top: 10px; font-weight: bold;}
	.header-nav-title-jp {font-size: 10px; }
    #sp-header-logo {
        max-width: 400px;
        width: 60%;
        padding-left: 15px;
        max-height: 50px;
        object-fit: contain;
        object-position: 0% 50%;
    }
	.sp_logo_box{height: 60px; display: flex; align-items: center; justify-content: flex-start;}

@media screen and (max-width: 966px) {
    #header ul li a {padding: 20px;}
}

/* ------------------------------ハンバーガーボタン------------------------------　*/
.slicknav_btn { position: absolute; display: block; vertical-align: middle; float: right; padding: 0.438em 0.625em 0.438em 0.625em; cursor: pointer; width: 60px; height: 60px;text-align: center; top: 0; right: 0;}
.slicknav_menu .slicknav_menutxt { font-size: 8px; display: block;line-height: 1.188em;transform: scale(0.85); margin-left: -3px;}
.slicknav_menu .slicknav_menutxt { color: #fff; font-weight: bold;}
.header-bars {color: #fff;}

@media screen and (max-width: 966px) {
	.slicknav_menu {display: block !important;}
	#header.is_show {background: none;}
}

/*--------------------------------------------------------------------------------
 *
 * コンテンツ
 *
--------------------------------------------------------------------------------*/

/* ------------------------------共通------------------------------　*/
section { width:100%; overflow: hidden;display: block;}
section .inner { width:90% ;max-width:1000px; margin:0 auto; padding:50px 0; }
#contents {margin: 0 !important;}
main {margin: 0 !important; padding: 0;}

@media screen and (max-width:766px) {
	section .inner { width:90%; padding:60px 0; }
}

/* ------------------------------パーツ------------------------------　*/
.ttl-line { display: block; margin: 0 auto; text-align: center; width: 65px; margin-bottom: 30px;}
.line { border-bottom: 3px solid; width: 50%; float: left; margin: 0 auto;}
section h2 { font-size:30px; letter-spacing:5px; font-weight:bold;}
section h2 span { font-size:14px; line-height:1.7; font-weight:bold; padding-bottom:20px; margin-bottom:0px; }
.txt-opacity {opacity: .7;}
.lead {text-align: center;}

@media screen and (max-width: 370px) {
	section h2 { font-size:26px; }
}

/*--------------------------------------------------------------------------------
 * PHILOSOPHY
--------------------------------------------------------------------------------*/
.philosophy h3 { text-align:center; font-size:18px; font-weight:bold; margin:30px 0; }
.philosophy p { text-align:center; margin:0; clear: both;}

/*--------------------------------------------------------------------------------
 * SERVICE
--------------------------------------------------------------------------------*/
.service h3 { text-align:center; font-size:16px; font-weight:bold; margin:10px 0; }
.service p { text-align:center; margin:0; clear: both;}
.service .service-icon { font-size:26px; opacity: 1;}
.service ul { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: space-around; -ms-flex-wrap: wrap; flex-wrap: wrap; margin-top: 50px;}
.service li { width: calc(32%); margin: 10px 0%;padding: 30px 20px;}
.service li p { font-size:12px; }

/*---リンク領域をBOX全体に---*/
.service ul li {position:relative; }
.service ul li a {position:absolute; width:100%; height:100%; top:0; left: 0; text-indent:100%;  white-space:nowrap;  overflow:hidden; }
.service ul li a:hover, .service ul li a:active {text-decoration: none; transition: .3s ease; transition: all .3s; border: 2px solid;}
.service ul li a:hover::before,.service ul li a:hover::after {width: 0; height: 0; opacity: 0; transition: all .3s;}
.service ul li:hover,.service ul li a:hover {opacity:1; filter: alpha(opacity=60); -ms-filter: "alpha( opacity=60 )";}

@media screen and (min-width:967px) and (max-width:1024px){
	.service li { width:calc(31%); flex-basis:31%;}
}

@media screen and (max-width:966px){
	.service { background-size:contain, auto; }
	.service li { width:100%; flex-basis:100%; margin:15px 0; }
	.service li:nth-child(3n+2) { margin:15px 0; }
}

/*--------------------------------------------------------------------------------
 * NEWS
--------------------------------------------------------------------------------*/
.news  { background:  url(/templates/23/images/news_bg.jpg) no-repeat 50% 0; background-size:  cover; background-attachment: fixed; }
.news .bg-opacity {background-color: rgba(0,0,0,0.6);}
.news > .bg-opacity > .inner > p { text-align:center; margin:0; color:#fff; }

@media screen and (max-width:966px){
	.news { background-size: cover; background-attachment:scroll; }
}

/* ------------------------------新着情報------------------------------　*/
div.post { margin-top:50px; width: 100%; 
	display:-webkit-box; display:-ms-flexbox; display:flex; 
	-webkit-box-pack:center; -ms-flex-pack:center; justify-content:center;/*中央に配置*/ 
	-ms-flex-wrap:wrap; flex-wrap:wrap; /*折り返す*/ }
div.post > div { width: calc(31%); margin: 10px 0; padding: 0 0 20px 0; box-shadow: 0 1px 2px rgba(0,0,0,0.3); background:#fff; }
div.post div p { font-size:12px; margin:0;}
div.post img { width:100%; height:200px; object-fit:cover; margin:0 auto 15px auto; padding:0; }
div.post div h3 { font-size:16px; font-weight:bold; padding:0; margin:0; background: none;}
div.post .txt-wrapper {padding: 0 20px; }

@media screen and (min-width:967px) and (max-width:1024px){
	div.post > div { width:calc(31%); flex-basis:31%;}
}

@media screen and (max-width:966px){
	div.post div { width:100%; flex-basis:100%; margin:10px 0; padding:0 0 20px 0; }
	div.post div:nth-child(3n+2) { margin:10px 0px; }
}

/*---ガテゴリーを画像の上に---*/
.relative { position:relative; }
.relative ul.post-categories { margin:0; padding:0; list-style:none; position:absolute; top:155px; left:20px;}
.relative ul.post-categories > li { position:relative; display:inline-block; width:auto; height:30px; line-height:30px; margin:0; padding:0 1em; border-radius:30px; color:#fff; text-decoration:none;
	-webkit-transition:.2s; transition:.2s; list-style:none; box-shadow:0 1px 2px rgba(0,0,0,0.3); }
.relative ul.post-categories > li a { display:block; max-width:300px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; font-size:10px; }

/* jsで固定で置き換わってしまうarticlesを仕組み作るのが手間なので暫定対応 */
.post > a {
    width: calc(31%);
    margin: 10px 0;
    padding: 0;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,0.3);
}
.post > a > .article-box {
    height: 100%;
    margin-bottom: 10px;
}
/*--------------------------------------------------------------------------------
 * PERFORMANCE
--------------------------------------------------------------------------------*/
.performance p { text-align:center; margin:0; clear: both;}
.performance ul { margin-top:50px; 
	display:-webkit-box; display:-ms-flexbox; display:flex; 
	-webkit-box-pack:center; -ms-flex-pack:center; justify-content:start;/*均等*/
	 -ms-flex-wrap:wrap; flex-wrap:wrap; /*折り返す*/ }
.performance li { width: calc(100% / 6); margin: 5px 0px; padding: 0px 5px; height: 70px;}
.performance li  img {width: 100%; height: 100%; object-fit: contain; background: #fff;}

@media screen and (max-width:966px){
	.performance li { width:calc(25%);}
}

@media screen and (max-width:766px){
	.performance li { width:calc(50%);}
}

/* ------------------------------ボタン------------------------------　*/
.btn { display: block; font-size: 16px; border-radius: 50px; position: relative; outline: none; cursor: pointer;text-align: center; padding: 20px 0; position: relative; z-index: 2; width: 400px;
	font-weight: bold; margin: 0 auto;}
.btn-icon {font-size: 15px; position: absolute;right: 10px;top: 50%; -ms-transform: translate(-50%,-50%); -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); opacity: 1;}
#read-btn { border: 3px solid; box-sizing: border-box; }
#read-btn:hover {transition: all .3s;}
.btn-2:hover {transition: all .3s; border: 2px solid; box-sizing: border-box; background: none;}

@media screen and (max-width:766px){
	.btn {width: 90%;}
}

/* ------------------------------色関係------------------------------　*/
/*背景カラー*/
.js-main-color {background: var(--user-color-main);}
.js-accent-color {background: var(--user-color-accent);}
.js-point-color {background: var(--user-color-point);}
.js-background-color {background: var(--user-color-background);}

/*文字カラー*/
.js-main-font-color {color: var(--user-color-main-font);}
.js-accent-font-color {color: var(--user-color-accent-font);}
.js-point-font-color {color: var(--user-color-point-font);}

/*--------------------------------------------------------------------------------
 *
 * フッター
 *
--------------------------------------------------------------------------------*/
footer { position:relative; width:100%; margin:0; padding:60px 0 30px 0; background:#202937; z-index:999; }
footer .inner { width: 96%!important; margin:0 auto; }
footer p { font-size:12px; color:#fff; margin-bottom: 0; }
footer img.logo { margin:0 0 20px 0; max-width: 290px;}
footer .ftr_left { width:30%; float:left; }
footer .ftr_right { width:50%; float:right; padding:0px 0 0 0; }
footer ul { display:table; width:100%; }
footer ul li { display:table-cell; width:50%; float:left; padding: 15px;}
footer li a { font-size:12px; color:#fff!important; display: block; }
address { font-size:10px; text-align:center; padding:30px 0 0 0; color:#fff; }
footer ul li span { display: block; line-height: 1.2; text-align: left;}
.footer-nav-title-jp { font-size: 10px;}
.footer-nav-title-en { font-weight: 300; font-size: 15px; letter-spacing: .06em; margin-top: 10px; font-weight: bold;}
footer table { color:#734719; margin-bottom:10px; }
footer table tr { border-bottom:1px solid #734719; }
footer table th { width:20%; }
footer table td { width:11.4285%; text-align:center }
footer table th,
footer table td { padding:10px 0; }

@media screen and (max-width:768px){
	footer { padding:40px 0; }
	footer .inner {width: 90%;}
	#footer { margin:0 auto; }
	footer img { margin:0 auto; }
	footer p { font-size:10px; text-align:center; margin:0; }
	footer img.logo { width:150px; margin:0 auto 20px auto; }
	footer .ftr_left {width: 100%;  float:none; margin:0 auto;}
	footer .ftr_right { width:100%; float:none; margin:0 auto; padding:20px 0 0 0;}
	address { font-size:14px; text-align:center; }
	footer ul { margin:0 auto; }
	footer ul li { text-align:left; padding: 10px;}
	footer li a { font-size:10px; }
	address { font-size:10px; }
	.footer-nav-title-en{font-size: 14px;}
}

/*--------------------------------------------------------------------------------
 *
 *
 * 下層ページ
 *
 *
--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------
 *
 * 共通
 *
--------------------------------------------------------------------------------*/
.inner-100 {width: 100%; margin: 0 auto;}

/*--------------------------------------------------------------------------------
 * kv
--------------------------------------------------------------------------------*/
#kv_inner { padding: 150px 0 100px 0; height: 330px; 
	display: -webkit-box; display: -ms-flexbox; display: flex; 
	-webkit-box-pack: left; -ms-flex-pack: left; 
	justify-content: center; -webkit-box-align: center;
  -ms-flex-align: center; align-items: center;}
.underLayer-kv {height: 330px;}
.underLayer-kv h2 {font-size: 40px;}

/*キャッチコピー中央*/
#kv_underlayer #kv_inner { width:1000px; height:auto; margin:0 auto; padding:0; display:-webkit-box; display:-ms-flexbox; display:flex;
	-webkit-box-pack:center; -ms-flex-pack:center; justify-content:center;/*左右中央揃え*/ -webkit-box-align:center; -ms-flex-align:center; align-items:center;/*上下中央揃え*/ }
#kv_underlayer #kv_inner .catch_copy { font-size: 2.5rem; text-align:center; font-weight:bold; color:#fff; padding-top:40px; text-shadow:0 3px 3px rgba(0,0,0,0.3); }

@media screen and (max-width:766px){
	#kv_inner  { width:100%; height: 200px; padding: 65px 0 40px 0;}
	#kv_inner .catch_copy { width:100%; text-align:center; padding-top:60px; }
	.underLayer-kv { height: 200px;}
}

/*--------------------------------------------------------------------------------
 *
 * COMPANY
 *
--------------------------------------------------------------------------------*/
.company_kv {background: url(/templates/23/images/company.jpg) no-repeat top center; background-size: cover; background-attachment: fixed;}   

@media screen and (max-width:766px){
	.company_kv {background-attachment: initial;}
}

/*--------------------------------------------------------------------------------
 * PROFILE
--------------------------------------------------------------------------------*/
.company ol.company-table { width: 100%; border: none; padding: 0;}
.company ol.company-table > li { border-top: 1px solid #e6e6e6; padding: 26px 0; text-align: left; vertical-align: middle; line-height: 1.5; font-size: 12px;
	display:-webkit-box; display:-ms-flexbox; display:flex;
	-webkit-box-align: center; -ms-flex-align: center; align-items: center;}
.company ol.company-table > li:last-child { border-bottom: 1px solid #e6e6e6;}
.company ol.company-table .company-left { width: 23%; font-weight: bold;}
.company ol.company-table .company-right { width: 77%;}
.company ul.location li {font-size: 12px;}

@media screen and (max-width:766px){
	.company ol.company-table .company-right {padding-left: 5%;}
}

/*--------------------------------------------------------------------------------
 * MAP
--------------------------------------------------------------------------------*/
.map iframe {width: 100%; height: 35vh;}
.map ul > li { border-top: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6; padding: 26px 0; text-align: left; vertical-align: middle; line-height: 1.5; font-size: 14px;
	display:-webkit-box; display:-ms-flexbox; display:flex;}
.map ul > li:first-child { border-top: 2px solid #e6e6e6; position: relative;}
.map ul > li:last-child {border-bottom: 2px solid #e6e6e6;}
.map ul > li .map-right { margin-left: auto;}
.map ul > li h3 {font-size: 16px; font-weight: bold; margin-bottom: 12px;}
.map ul > li p {font-size: 14px;margin-bottom: 0px; line-height: 1.7;}

@media screen and (max-width:766px){
	.map ul > li:first-child .map-right .btn {position: absolute; top: -50px; left: 50%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%);}
    .map iframe {margin-bottom: 60px;}
}

/*--------------------------------------------------------------------------------
 * GALLERY
--------------------------------------------------------------------------------*/
.gallery ul { margin-top:50px;
	display:-webkit-box; display:-ms-flexbox; display:flex; 
	-webkit-box-pack:center; -ms-flex-pack:center; justify-content:start;/*均等*/ 
	-ms-flex-wrap:wrap; flex-wrap:wrap; /*折り返す*/  }
.gallery li { width: calc(24%);margin: 5px 4px; padding: 0px 5px; height: 145px;overflow: hidden; position: relative;}
.gallery ul li img  {width: 100%; height: 100%; object-fit: cover; left: 50%; top: 50%; position: absolute;
    -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}

@media screen and (max-width:966px){
	.gallery  li { width:calc(23%); margin: 5px 5px; height: 110px;}
}

@media screen and (max-width:766px){
	.gallery  li { width:calc(46%);}
}

/*--------------------------------------------------------------------------------
 *
 * MEMBER
 *
--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------
 * MEMBER
--------------------------------------------------------------------------------*/
.member_kv {background: url(images/member.jpg) no-repeat center center; background-size: cover; background-attachment: fixed;}
.member ul { align-items: center; display: flex; flex-flow: row nowrap; margin-top: 0;  height: auto; overflow: hidden;}
.member ul:nth-child(even) { flex-direction: row-reverse;}
.member ul li {position: relative; }
.member ul li:first-child { width: 65%; position: relative; height: auto; }
.member ul li:first-child p {margin-bottom: 0;}
.member ul li:last-child { width: 35%; padding: 100px 50px;}
.member ul li img {width: 100%; height: auto; object-fit: cover; position: absolute; 
	left: 50%; top: 50%;
    -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
.member ol { width: 100%; 
	display: -webkit-box; display: -ms-flexbox; display: flex;  
	-ms-flex-line-pack: justify; justify-content: space-between; 
	-ms-flex-wrap: wrap; flex-wrap: wrap;}
.member ol li { width: calc(48.5%); margin-bottom: 30px;}
.member ol li p {height: 300px; overflow: hidden; position: relative;}
.member ol li img {width: 100%; height: 100%; object-fit: cover; position: absolute;
    left: 50%; top: 50%;  -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
.member ol li .txt-wrapper { padding: 30px;}
.member ol li .txt-wrapper p {height: auto;}
.member p.lead {text-align: center;}
.member h3 { font-size: 14px; font-weight: bold; margin-bottom: 5px;}
.member h4 {font-size: 24px; font-weight: bold; margin-bottom: 10px;}
.member h4 span { margin-left: 15px; font-size: 18px; font-weight: bold;}

@media screen and (max-width:1370px){
	.member ul li:first-child {width: 50%;}
	.member ul li:last-child {width: 50%;}
	.member ul li img {height: 45vh;}
}

@media screen and (max-width:966px){
	.member ul {display: block; height: auto;}
	.member ul li:first-child { width: 100%; height: 450px; overflow: hidden;}
	.member ul li:last-child { width: 100%; padding: 5%;}
	.member ol li p {height: 450px;}
	.member ul li img {height: auto;}
	.member ol {width: 90%; margin: auto;}
	.member ol li {width: 100%;}
	.member ol li .txt-wrapper {padding: 5%;}
}

@media screen and (max-width:766px){
	.member_kv {background-attachment: initial;}
	.member ul li:first-child {height: 250px;}
	.member ol li p {height: 250px;}
}

/*--------------------------------------------------------------------------------
 *
 * SERVICE
 *
--------------------------------------------------------------------------------*/
.service_kv {background: url(/templates/23/images/service.jpg) no-repeat top center; background-size: cover; background-attachment: fixed;}
@media screen and (max-width:766px){
	.service_kv {background-attachment: initial;}
}

/*--------------------------------------------------------------------------------
 * POINT
--------------------------------------------------------------------------------*/
.point ul { margin: 50px 0; overflow: hidden; min-height: 350px;
	display: -webkit-box; display: -ms-flexbox; display: flex; 
	-webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; 
	-ms-flex-wrap: wrap; flex-wrap: wrap; }
.point ul:nth-child(even) {flex-direction: row-reverse;}
.point ul:last-child {margin: 0; }
.point ul li { width: calc(50%); position: relative;}
.point ul li img {width: 100%; height: 100%; object-fit: cover; position: absolute;
	left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%);  transform: translate(-50%, -50%); }
.point ul li.text-box { width: calc(100% - 50%); padding: 30px;}
.point h3 { font-weight: bold; line-height: 1.8;}
.point h3 span.point { font-size: 16px; padding: 10px 15px; margin-right: 10px;}
.point h3 span.ttl {margin: 0 0 15px 0; font-size: 24px;padding-left: 5px;}
.point h4 { margin-bottom: 20px; font-size: 20px;}
.point h4 span { font-weight: bold; padding-bottom: .5%;}

@media screen and (max-width:766px){
	.point ul li { width: 100%; }	
	.point ul li.img-wrapper {height: 250px;}
	.point ul li.text-box { width: 100%; margin-top: 5%; padding: 5%;}
}

/*--------------------------------------------------------------------------------
 * PLICE
--------------------------------------------------------------------------------*/
.price .first-price {padding: 30px;}
.price h3 { text-align:center; font-size:20px; font-weight:bold; margin:10px 0; }
.price h3 span {font-size: 14px;}
.price h3 strong {font-size: 30px;}
.price p { text-align:center; clear: both;}
.price ul { display:-webkit-box; display:-ms-flexbox; display:flex; -webkit-box-pack:center; -ms-flex-pack:center; justify-content:space-around; -ms-flex-wrap:wrap; flex-wrap:wrap;}
.price li { width: calc(31%); margin: 10px 0; padding: 30px 20px;}
.price li p { font-size:12px; margin: 0;}

@media screen and (max-width:766px){
	.price ul {display: block;}
	.price ul li {margin: 5% 0; width: 100%;}
}

/*--------------------------------------------------------------------------------
 *
 * RECRUIT
 *
--------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------
 * recruit
--------------------------------------------------------------------------------*/
.recruit_kv {background: url(images/recruit.jpg) no-repeat top center; background-size: cover; background-attachment: fixed;}
.recruit ul { align-items: center; display: flex; flex-flow: row nowrap; margin-top: 0; overflow: hidden; }
.recruit ul li:first-child { width: 60%; position: relative;
    height: auto;}
.recruit ul li:last-child { width: 40%;}
.recruit ul li img {width: 100%; height: 50vh; object-fit: cover; position: absolute;
    left: 50%; top: 50%;  -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}
.recruit .text-box {padding: 100px 50px;}
.recruit h3 {font-size: 24px; font-weight: bold;}
.recruit .name {text-align: right; font-weight: bold;} 

@media screen and (max-width:1370px){
	.recruit ul li:first-child {width: 50%;}
	.recruit ul li:last-child {width: 50%;}
	.recruit ul li img {height: 55vh;}
}

@media screen and (max-width:966px){
	.recruit ul {display: block; }
	.recruit ul li:first-child {width: 100%; height: 450px;}
	.recruit ul li:last-child {width: 100%;}
	.recruit ul li img {height: 100%;}
	.recruit .text-box {padding: 5%;}	
}

@media screen and (max-width:766px){
	.recruit_kv {background-attachment: initial;}
	.recruit ul li:first-child {height: 250px;}
	.recruit ul li img {height: 100%;}
}

/*--------------------------------------------------------------------------------
 * occupation
--------------------------------------------------------------------------------*/
.occupation-wrapper {align-items: center; display: flex; flex-flow: row nowrap; margin-top: 0; overflow: hidden;}
.occupation-wrapper .txt-wrapper {width: 25%;}
.occupation ul { width: 75%; border: none; padding: 30px;}
.occupation ul li { display: flex; border-top: 1px solid #e6e6e6; padding: 26px 0; text-align: left; vertical-align: middle; line-height: 1.5; font-size: 12px; align-items: center;}
.occupation ul > li:first-child {border-top: none;}
.occupation ul > li:last-child {border-bottom: none;}
.occupation ul .occupation-left { width: 23%; font-weight: bold;}
.occupation ul .occupation-right { width: 77%;}
.occupation ul.location li {font-size: 12px;}
.occupation h3 {font-size: 16px; font-weight: bold; margin-bottom: 0; text-align: center; }
.occupation ul > li p {font-size: 14px;margin-bottom: 0px; line-height: 1.7;}

@media screen and (max-width:966px){
	.occupation-wrapper {display: block;}
	.occupation-wrapper .txt-wrapper {width: 100%;}
	.occupation ul {width: 100%; padding: 5%;}
	.occupation ul .occupation-right {padding-left: 5%;}
	.occupation h3 {padding: 5%;}
}

/*--------------------------------------------------------------------------------
 *
 * CONTACT
 *
--------------------------------------------------------------------------------*/
.contact_kv {background: url(/templates/23/images/contact.jpg) no-repeat top center; background-size: 100%; background-attachment: fixed;}
.contact ul { display:-webkit-box; display:-ms-flexbox; display:flex; -webkit-box-pack:center; -ms-flex-pack:center; justify-content:space-between;/*均等*/ -ms-flex-wrap:wrap; flex-wrap:wrap; /*折り返す*/ }
.contact ul li {width: 45%; }
.contact h3 {font-size: 18px; font-weight: bold; margin-bottom: 30px;}
.line-btn, .phone-btn {display: block;  position: relative; outline: none; cursor: pointer; text-align: center; padding: 20px 0; position: relative; z-index: 2; font-weight: bold;}
.line-btn {background: #00c300; color: #fff; border-radius: 4px; font-size: 24px;}
.phone-btn {border-radius: 4px;}
.contact .time { line-height: 1.7; text-align: center; margin-top: 20px;}
.line-btn .fa-chevron-circle-right, .phone-btn .fa-chevron-circle-right  {position: absolute; top: 50%; right: 0%; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%);font-size: 20px;}

@media screen and (max-width:766px){
	.contact_kv {background-attachment: initial;}
	.contact ul { width: 100%; display: block;}
	.contact ul li {width: 100%; padding: 5%; margin-bottom: 10%;}
}

/*form*/
dl { display: flex; align-items: center; border-bottom: 1px solid #e6e6e6;}
dt { font-weight: bold; font-size: 14px; width: 40%; display: table-cell; table-layout: fixed; vertical-align: middle;}
dd, dd span,input[type="text"],textarea { width: 100% !important;}
input.wpcf7-form-control.wpcf7-text.wpcf7-validates-as-required, input.wpcf7-form-control.wpcf7-text.wpcf7-email.wpcf7-validates-as-email, input.wpcf7-form-control.wpcf7-text.wpcf7-tel.wpcf7-validates-as-tel, input.wpcf7-form-control.wpcf7-text, textarea.wpcf7-form-control.wpcf7-textarea { padding: 20px; background-color: #fff; border: 2px solid #ccc; border-radius: 5px; height: auto; line-height: 1;}
span.wpcf7-list-item { display: inline-block; width: 100%; float: left; line-height: 3; }
dl ul {margin-left: 200px;}

@media screen and (max-width:776px){
	dl { display: grid; padding: 5% 0;}
	dt {line-height: 2; width: 100%;}
	span.wpcf7-list-item {width: 100%;}
}

dl.form dl,dt,dd {margin:0; padding:0; }
dl.form{ width:100%; }
dl.form dt,dd { padding:20px 0; }
dl.form dt { clear:left; float:left; width:27%; font-size:14px; border-top:1px solid #ccc; }
dl.form dd { margin-left:27%; border-top:1px solid #ccc; }

@media screen and (max-width:768px){
	dl.form dt,dd { padding:0; }
	dl.form dt { clear:both; float:none; width:100%; border-top:1px solid #ccc; padding:20px 0 10px 0; }
	dl.form dd { margin-left:0%; border-top:none; padding-bottom:20px; }
}

/* ------------------------------プレースホルダーの色・サイズ指定------------------------------　*/
input::-webkit-input-placeholder {color:#ccc; font-size:14px; }
input:-moz-placeholder {color:#ccc; font-size:14px; }
textarea::-webkit-input-placeholder {color:#ccc; font-size:14px; }
textarea:-moz-placeholder {color:#ccc; font-size:14px; }

/* ------------------------------コンタクトフォーム７------------------------------　*/
div.wpcf7 { display:block; width:100%; margin:0 auto!important; box-shadow:none; background:transparent; }
div.wpcf7 br { display:none; }

@media screen and (max-width:768px){
	div.wpcf7 { width:100%; }
}
/* １列の場合 */
div.wpcf7 ul li { padding:30px 0 0 0; margin:0; font-size:16px; line-height:2; color:#455A64; }
div.wpcf7 ul li:first-child { padding:0 0 0 0!important; }
div.wpcf7 ul.question li { padding:80px 0 0 0; margin:0; font-size:16px; line-height:2; color:#455A64; }
div.wpcf7 ul.question li:first-child { padding:0 0 0 0!important; }
div.wpcf7 ul.question li:before { content:'Q,'; padding-right:10px; font-size:26px; color:#ED1E79; font-weight:bold; }

/* ２列の場合 */
div.wpcf7 dl{ border-top:none; width:100%; }
div.wpcf7 dl dt { clear:left; float:left; width:30%; border-top: 1px dotted #cccccc; padding:10px 0; font-size:14px; }
div.wpcf7 dl dd { margin-left:30%; border-top: 1px dotted #cccccc; padding:10px 0; }
div.wpcf7 dl dd span { font-size:12px; color:#666666; line-height: 4; width: 180px; }

@media screen and (max-width:768px){
	div.wpcf7 dl dt { float:none; width:100%; padding-bottom:0; }
	div.wpcf7 dl dd { margin:0; border:none;}
}

div.wpcf7 input, .wpcf7 textarea , .wpcf7 select { width:100%; border:1px solid #CDCDDF; padding:14px; font-size:16px; border-radius:2px; }
div.wpcf7 textarea { height:215px; }
div.wpcf7 select { height:60px; }
.wpcf7 input:focus, .wpcf7 textarea:focus { border:1px solid #009de1; }
.wpcf7-captchac { border:1px solid #ccc; }

/* エラー個所をわかりやすく表示 */
.wpcf7 .wpcf7-not-valid { background: #ffb6c1; display: table-footer-group;}
.wpcf7 span.wpcf7-not-valid-tip {font-size: 80%;}
.wpcf7 .wpcf7-response-output {margin: 10px 0 0; padding: 8px 35px 8px 14px; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
    -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; }
.wpcf7 .wpcf7-validation-errors {color: #B94A48; background-color: #F2DEDE; border: 1px solid #EED3D7;}
.wpcf7 .wpcf7-mail-sent-ok {color: #3A87AD; background-color: #D9EDF7; border: 1px solid #BCE8F1;}

/* 必須赤色表示 */
.wpcf7 .required { color: #000000;}

/* 任意緑色表示 */
.wpcf7 .any{ color: #080;}
select { background:#ffffff; border:1px solid #cccccc; border-radius:3px; color:#0C2245; font-size:14px; height:40px; line-height:30px; text-align:left; text-indent:5px; vertical-align:middle; width:100%; }

/* 必須or任意 */
.hissu,.nini { color:#ffffff; margin:0 0 0 5px; padding:3px 7px; font-size:10px; font-weight:bold; border-radius:3px; }
.hissu { background:#D8544F; }
.nini { background:#78919C; }
::placeholder { color:#999999; }

/* ------------------------------送信ボタン------------------------------　*/
input[type="submit"] { -webkit-appearance:none; margin:0 auto; position: relative;  outline: none; border: none;  font-size: 16px; font-weight: bold; border-radius: 50px;}
.contact-btn {width: 400px; margin: auto; position: relative; }
input.wpcf7-submit{ background:#fff136; display:block; font-size:24px!important; color:#CF2B4B; width:70% ; border-radius:55px!important; margin:0 auto; border:none!important; position: relative; outline: none; cursor: pointer; font-weight: bold; padding: 3%;}
@media screen and (max-width:766px) {
	input.wpcf7-submit {height: auto; padding: 5% 0; width: 100% !important;}
	.contact-btn {width: 90%; margin: auto;}
}
/* ------------------------------チェックボックスのデザイン------------------------------　*/
input[type=checkbox] { display:none; }
.wpcf7-list-item-label { position:relative; padding:0 0 0 56px; top:0px; }
.wpcf7-list-item-label:hover:after { border-color:#CF2B4B; }
.wpcf7-list-item-label:after,  .wpcf7-list-item-label:before{position:absolute; content:""; display:block; top:50%; }
.wpcf7-list-item-label:after { left:0px; margin-top:-20px; width:36px; height:36px; border:2px solid #ccc; border-radius:3px; }
.wpcf7-list-item-label:before { left:18px; margin-top:-7px; width:5px; height:9px; border-right:3px solid #CF2B4B; border-bottom:3px solid #CF2B4B; transform:rotate(45deg); opacity:0; }
input[type=checkbox]:checked + .wpcf7-list-item-label:before {opacity:1 !important; }

@media screen and (max-width:768px){
	.wpcf7-list-item  { padding:15px 0; } /* チェックボックス下に14pxのスペース */
}

/* ------------------------------フェードインアニメーション------------------------------　*/
.sa {opacity: 0; transition: all .5s ease; } /* ノーマル */
.sa.sa-show {opacity: 1; transform: none; } /* ノーマル */
.sa-lr {transform: translate(-100px, 0); } /* 右から */
.sa-rl {transform: translate(100px, 0); } /* 左から */
.sa-up {transform: translate(0, 100px); } /* 下から */
.sa-down {transform: translate(0, -100px); } /* 上から */
.sa-scaleUp {transform: scale(.5); } /* 縮小→拡大 */
.sa-scaleDown {transform: scale(1.5); } /* 拡大→縮小 */
.sa-rotateL {transform: rotate(180deg); } /* 左回転 */
.sa-rotateR {transform: rotate(-180deg); } /* 右回転 */


/* ------------------------------SP版スライドショーのはみ出し調整------------------------------　*/
.contents-bg div {
  max-width: 100%!important;
  overflow: hidden!important;
}

/* ------------------------------記事ページ------------------------------　*/
.all-wrapper,
.article-detail {
  padding-top: 50px;
}
h1.articles-heading {
  font-size: 2.5rem;
  line-height: 3;
  width: 100%;
}
main.container.view-articles.flex {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}
.view-article__image {
  object-fit: cover;
  width: 33vw;
  height: 250px;
}
@media screen and (max-width: 768px) {
  main.container.view-articles.flex {
    display: block;
  }
  .view-article__image {
    width: 100%;
    height: 150px;
  }
}

/* ------------------------------セミナー------------------------------　*/
main.main-contents.container.mt40 {
  margin-top: 0!important;
  padding-top: 130px!important;
  padding: 0 10%;
  width: 100%;
}
.seminarDetail {
  padding-top: 150px;
}
.seminarComplete {
  padding-top: 130px;
}
.reserveContainer {
  padding-top: 100px;
}
#article-detail {
  padding-top: 100px;
}
#article-detail {
  padding-top: 60px;
}

/*
 * ヘッダーロゴの表示サイズ変更
 */
.header-logo-lg #hdrLeft img {
    max-height: 72px;
    height: 72px;
}
.header-logo-lg .slicknav_menu .slicknav_menu__background {
    height: 90px;
}
.header-logo-lg .slicknav_btn {
    height: 82px;
    padding: calc(0.438em + 11px) 0.625em;
}
.header-logo-lg .sp_logo_box {
    height: 82px;
}
.header-logo-lg #sp-header-logo {
    max-height: 72px;
    height: 72px;
}
.header-logo-lg nav#header__nav ul li a {
    padding: 32px 30px;
}
@media screen and (max-width: 768px) {
    header.header-logo-lg + * {
        margin-top: 82px!important;
    }
}
