@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=Merriweather|Open+Sans:300,400,700&display=swap');

/*---------------------------------------------
	目次
  ---------------------------------------------
	リセット
	リンク
	フォント
	メインコンテンツ
	強制指定
	[CL]  カラム
	[HD]  見出し
	[TX]  テキスト
	[HR]  区切り線
	[IG]  画像
	[LT]  リスト
	[LK1]  アイコンリンク
	[LK2]  横並びリンク
	[TG1] タグ
	[TG2] ラベル
	[BT]  ボタン
	[BT3] シェアボタン
	[BT4] メニューボタン
	[BT5] ページトップボタン
	[BX]  ボックス
	[PL]  パネル
	[TB]  表
	[NV1] コンテンツナビゲーション
	[NV2] タブ
	[EB1] 動画埋め込み
	[EB2] モーダル
	[SL]  スライダー

	1200px未満
	768px未満
	480px未満
	印刷用
 ----------------------------------------------*/
/*---------------------------------------------
	リセット
  ---------------------------------------------*/
html {
  height: 100%;
  overflow-y: scroll;
}

body, div, dl, dt, dd, ul, ul li, h1, h2, h3, h4, h5, h6,
pre, form, fieldset, input, textarea, p, blockquote, th, td,
section, nav, article, aside, header, address,
figure, figcaption {
  margin: 0;
  padding: 0;
}

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption,
th {
  text-align: left;
}

q:before,
q:after {
  content: '';
}

object,
embed {
  vertical-align: top;
}

legend {
  display: none;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 1rem;
  font-weight: normal;
}

img, abbr, acronym, fieldset {
  border: 0;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
  -ms-interpolation-mode: bicubic;
}

ul li {
  list-style-type: none;
}

input,
select,
textarea,
button {
  font-family: inherit;
  font-size: inherit;
  letter-spacing: inherit;
}

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

body {
  height: 100%;
  color: #555;
  text-align: left;
  line-height: 1.8;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
          text-size-adjust: 100%;
}

/*---------------------------------------------
	リンク
  ---------------------------------------------*/
.mod a {
  color: #33739b;
  outline: none;
  text-decoration: underline;
  -webkit-transition: color .2s linear;
  transition: color .2s linear;
}
html:not(.sp) .mod a:hover {
  color: #709db9;
}
html.phone .mod main a[href*="tel:"] {
  text-decoration: underline;
}
.mod .tel {
  font-size: 2rem !important;
  font-family: 'Open Sans', sans-serif !important;
  font-weight: 400;
  line-height: 1.2;
}
.mod .tel a {
  color: #000 !important;
  text-decoration: none !important;
}
.mod .txt.-white .tel a,
.mod .panel-covered .tel a {
  color: #fff !important;
}
html:not(.sp) .mod .tel a:hover {
  text-decoration: none;
}
.mod .tel.free:before {
  content: "";
  display: inline-block;
  width: 65px;
  height: 38px;
  margin-right: 10px;
  vertical-align: middle;
  background: url("../images/icon/icon_freedial.png") no-repeat left center;
  background-size: contain;
}
html:not(.sp) .mod a[href^="tel:"] {
  color: #555;
  pointer-events: none;
  text-decoration: none;
}


/*---------------------------------------------
	フォント
  ---------------------------------------------*/
html {
  font-size: 100%;
}

body {
/*font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", Meiryo, sans-serif;*/
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", Meiryo, sans-serif;
  letter-spacing: .03em;
}

/* ----- Webフォント（Google Fonts） ----- */
.txt-en {
  font-family: 'Times New Roman', 'Merriweather', serif !important;
  font-weight: 400;
  letter-spacing: .3em;
}


/*---------------------------------------------
	メインコンテンツ
  ---------------------------------------------*/
body.menu-on {
  position: fixed;
  width: 100%;
  height: 100%;
}
#wrapper {
  min-width: 320px;
  overflow: hidden;
}
.mod main {
  display: block;
  margin-left: 60px;
}

.mod .content {
  padding-top: 60px;
  padding-bottom: 50px;
  background-color: #fff;
}
.mod .content:not([class*="bg-"]) + .content:not([class*="bg-"]) {
  padding-top: 0;
}
.mod .float-heading {
  margin-top: -80px;
}
.mod .content.float-heading {
  padding-top: 0;
}

.mod .row {
  position: relative;
  max-width: 1230px;
  margin: 0 auto;
  padding: 0 4.25vw;
  box-sizing: content-box;
  z-index: 2;
}
.mod .row.narrow {
  max-width: 960px;
}
.mod .row .row {
  padding: 0;
}

.mod .fixed {
  position: fixed;
  z-index: 10000;
  width: 100%;
  height: 0;
}



/*---------------------------------------------
	強制指定
  ---------------------------------------------*/
/* ----- 上下左右中央寄せ ----- */
.mod .left {text-align: left !important;}
.mod .center {text-align: center !important;}
.mod .right {text-align: right !important;}
.mod .top {vertical-align: top !important;}
.mod .middle {vertical-align: middle !important;}
.mod .bottom {vertical-align: bottom !important;}
.mod .inline-block {display: inline-block !important;}

/* ----- 表示／非表示 ----- */
@media screen and (min-width: 768px), print {
  .mod .show-sp {
    display: none !important;
  }
}
@media screen and (min-width: 480px), print {
  .mod .show-mobile {
    display: none !important;
  }
}
/* ----- 文字サイズ ----- */
.mod .ll {font-size: 1.25rem !important;}
.mod .lm {font-size: 1.125rem !important;}
.mod .l {font-size: 1.06rem !important;}
.mod .ml {font-size: 0.94rem !important;}
.mod .m {font-size: 0.88rem !important;}
.mod .sm {font-size: 0.81rem !important;}
.mod .s {font-size: 0.75rem !important;}
.mod .ss {font-size: 0.69rem !important;}

/* ----- 文字装飾 ----- */
.mod .normal {font-weight: normal !important;}
.mod .bold {font-weight: bold !important;}
.mod .italic {font-style: italic !important;}
.mod .oblique {font-style: oblique !important;}

/* ----- 幅 ----- */
.mod .w50 {width: 50px !important;}
.mod .w60 {width: 60px !important;}
.mod .w70 {width: 70px !important;}
.mod .w80 {width: 80px !important;}
.mod .w90 {width: 90px !important;}
.mod .w100 {width: 100px !important;}
.mod .w110 {width: 110px !important;}
.mod .w120 {width: 120px !important;}
.mod .w130 {width: 130px !important;}
.mod .w140 {width: 140px !important;}
.mod .w150 {width: 150px !important;}
.mod .w160 {width: 160px !important;}
.mod .w170 {width: 170px !important;}
.mod .w180 {width: 180px !important;}
.mod .w190 {width: 190px !important;}
.mod .w200 {width: 200px !important;}
.mod .w240 {width: 240px !important;}

/* ----- 上余白 ----- */
.mod .mt0 {margin-top: 0px !important;}
.mod .mt10 {margin-top: 10px !important;}
.mod .mt20 {margin-top: 20px !important;}
.mod .mt30 {margin-top: 30px !important;}
.mod .mt40 {margin-top: 40px !important;}
.mod .mt50 {margin-top: 50px !important;}
.mod .mt60 {margin-top: 60px !important;}
.mod .mt70 {margin-top: 70px !important;}
.mod .mt80 {margin-top: 80px !important;}
.mod .mt90 {margin-top: 90px !important;}
.mod .mt100 {margin-top: 100px !important;}

/* ----- 下余白 ----- */
.mod .mb0 {margin-bottom: 0px !important;}
.mod .mb10 {margin-bottom: 10px !important;}
.mod .mb20 {margin-bottom: 20px !important;}
.mod .mb30 {margin-bottom: 30px !important;}
.mod .mb40 {margin-bottom: 40px !important;}
.mod .mb50 {margin-bottom: 50px !important;}
.mod .mb60 {margin-bottom: 60px !important;}
.mod .mb70 {margin-bottom: 70px !important;}
.mod .mb80 {margin-bottom: 80px !important;}
.mod .mb90 {margin-bottom: 90px !important;}
.mod .mb100 {margin-bottom: 100px !important;}

/* ----- 左余白 ----- */
.mod .ml0 {margin-left: 0px !important;}
.mod .ml10 {margin-left: 10px !important;}
.mod .ml20 {margin-left: 20px !important;}
.mod .ml30 {margin-left: 30px !important;}
.mod .ml40 {margin-left: 40px !important;}
.mod .ml50 {margin-left: 50px !important;}
.mod .ml60 {margin-left: 60px !important;}
.mod .ml70 {margin-left: 70px !important;}
.mod .ml80 {margin-left: 80px !important;}
.mod .ml90 {margin-left: 90px !important;}
.mod .ml100 {margin-left: 100px !important;}

/* ----- 左余白(em) ----- */
.mod .ml1em {margin-left: 1em !important;}
.mod .ml2em {margin-left: 2em !important;}
.mod .ml3em {margin-left: 3em !important;}
.mod .ml4em {margin-left: 4em !important;}
.mod .ml5em {margin-left: 5em !important;}
.mod .ml6em {margin-left: 6em !important;}
.mod .ml7em {margin-left: 7em !important;}
.mod .ml8em {margin-left: 8em !important;}
.mod .ml9em {margin-left: 9em !important;}
.mod .ml10em {margin-left: 10em !important;}

/* ----- 右余白 ----- */
.mod .mr0 {margin-right: 0px !important;}
.mod .mr10 {margin-right: 10px !important;}
.mod .mr20 {margin-right: 20px !important;}
.mod .mr30 {margin-right: 30px !important;}
.mod .mr40 {margin-right: 40px !important;}
.mod .mr50 {margin-right: 50px !important;}
.mod .mr60 {margin-right: 60px !important;}
.mod .mr70 {margin-right: 70px !important;}
.mod .mr80 {margin-right: 80px !important;}
.mod .mr90 {margin-right: 90px !important;}
.mod .mr100 {margin-right: 100px !important;}

/* ----- 他余白 ----- */
.mod .pd0 {padding: 0px !important;}
.mod .pb0 {padding-bottom: 0px !important;}
.mod .pt0 {padding-top: 0px !important;}

/* ----- 行高 ----- */
.mod .lh1 {line-height: 1 !important;}

/* ----- インデント ----- */
.mod .indent1em {margin-left: 1em !important; text-indent: -1em !important;}
.mod .indent2em {margin-left: 2em !important; text-indent: -2em !important;}
.mod .indent3em {margin-left: 3em !important; text-indent: -3em !important;}
.mod .indent4em {margin-left: 4em !important; text-indent: -4em !important;}
.mod .indent5em {margin-left: 5em !important; text-indent: -5em !important;}
.mod .indent6em {margin-left: 6em !important; text-indent: -6em !important;}
.mod .indent7em {margin-left: 7em !important; text-indent: -7em !important;}
.mod .indent8em {margin-left: 8em !important; text-indent: -8em !important;}
.mod .indent9em {margin-left: 9em !important; text-indent: -9em !important;}
.mod .indent10em {margin-left: 10em !important; text-indent: -10em !important;}

/* ----- 背景色 ----- */
.mod .bg-white {background-color: #fff !important;}
.mod .bg-black {background-color: #000 !important;}
.mod .bg-light {background-color: #f7f4f0 !important;}
.mod .bg-gray {background-color: #eee9e5 !important;}
.mod .bg-dark {background-color: #3d4041 !important;}
.mod .bg-gold {background-color: #c1b4a0 !important;}
.mod .bg-pink {background-color: #fce9e6 !important;}
.mod .bg-blue {background-color: #e3eef8 !important;}
.mod .bg-dark-pink {background-color: #f3d4d1 !important;}
.mod .bg-dark-blue {background-color: #b9cee2 !important;}
.mod .bg-img {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

/* ----- 文字色 ----- */
.mod .txt-white,
.mod .txt-white * {
  color: #fff !important;
}
.mod .txt-black,
.mod .txt-black * {
  color: #000 !important;
}
.mod .txt-dark,
.mod .txt-dark * {
  color: #555 !important;
}
.mod .txt-gray,
.mod .txt-gray * {
  color: #888 !important;
}
.mod .txt-light-gray,
.mod .txt-light-gray a {
  color: #999 !important;
}
.mod .txt-gold,
.mod .txt-gold * {
  color: #a6957a !important;
}
.mod .txt-light-brown,
.mod .txt-light-brown * {
  color: #ae9e84 !important;
}

.mod .no-shadow {box-shadow: none !important;} /* add 20201207 */

/*---------------------------------------------
	[CL] カラム
  ---------------------------------------------*/
.mod .col-set {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: calc(100% + 60px);
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.mod .col-set.middle {align-items: center !important;}
.mod .col-set.bottom {align-items: flex-end !important;}

.mod .no-gutter {
  width: 100%;
}

.mod .gutter10 {
  width: calc(100% + 10px);
  margin-right: -10px;
}

.mod .col-set.gutter20 {
  width: calc(100% + 20px);
  margin-right: -20px;
}

.mod .gutter40 {
  width: calc(100% + 40px);
  margin-right: -40px;
}

.mod .row .no-gutter {
  margin-bottom: 20px;
}


.mod .col1 {width: calc(100% - 60px);}
.mod .col1-2 {width: calc(50% - 60px);}
.mod .col1-3 {width: calc(33.33333333% - 60px);}
.mod .col2-3 {width: calc(66.66666666% - 60px);}
.mod .col1-4 {width: calc(25% - 60px);}
.mod .col3-4 {width: calc(75% - 60px);}
.mod .col1-5 {width: calc(20% - 60px);}
.mod .col2-5 {width: calc(40% - 60px);}
.mod .col3-5 {width: calc(60% - 60px);}
.mod .col4-5 {width: calc(80% - 60px);}
.mod .col1-6 {width: calc(16.66666666% - 60px);}
.mod .col5-6 {width: calc(83.33333333% - 60px);}

.mod .no-gutter > .col1 {width: 100%;}
.mod .no-gutter > .col1-2 {width: 50%;}
.mod .no-gutter > .col1-3 {width: 33.33333333%;}
.mod .no-gutter > .col2-3 {width: 66.66666666%;}
.mod .no-gutter > .col1-4 {width: 25%;}
.mod .no-gutter > .col3-4 {width: 75%;}
.mod .no-gutter > .col1-5 {width: 20%;}
.mod .no-gutter > .col2-5 {width: 40%;}
.mod .no-gutter > .col3-5 {width: 60%;}
.mod .no-gutter > .col4-5 {width: 80%;}
.mod .no-gutter > .col1-6 {width: 16.66666666%;}
.mod .no-gutter > .col5-6 {width: 83.33333333%;}

.mod .gutter10 .col1 {width: calc(100% - 10px);}
.mod .gutter10 .col1-2 {width: calc(50% - 10px);}
.mod .gutter10 .col1-3 {width: calc(33.33333333% - 10px);}
.mod .gutter10 .col2-3 {width: calc(66.66666666% - 10px);}
.mod .gutter10 .col1-4 {width: calc(25% - 10px);}
.mod .gutter10 .col3-4 {width: calc(75% - 10px);}
.mod .gutter10 .col1-5 {width: calc(20% - 10px);}
.mod .gutter10 .col2-5 {width: calc(40% - 10px);}
.mod .gutter10 .col3-5 {width: calc(60% - 10px);}
.mod .gutter10 .col4-5 {width: calc(80% - 10px);}
.mod .gutter10 .col1-6 {width: calc(16.66666666% - 10px);}
.mod .gutter10 .col5-6 {width: calc(83.33333333% - 10px);}

.mod .gutter20 .col1 {width: calc(100% - 20px);}
.mod .gutter20 .col1-2 {width: calc(50% - 20px);}
.mod .gutter20 .col1-3 {width: calc(33.33333333% - 20px);}
.mod .gutter20 .col2-3 {width: calc(66.66666666% - 20px);}
.mod .gutter20 .col1-4 {width: calc(25% - 20px);}
.mod .gutter20 .col3-4 {width: calc(75% - 20px);}
.mod .gutter20 .col1-5 {width: calc(20% - 20px);}
.mod .gutter20 .col2-5 {width: calc(40% - 20px);}
.mod .gutter20 .col3-5 {width: calc(60% - 20px);}
.mod .gutter20 .col4-5 {width: calc(80% - 20px);}
.mod .gutter20 .col1-6 {width: calc(16.66666666% - 20px);}
.mod .gutter20 .col5-6 {width: calc(83.33333333% - 20px);}

.mod .gutter40 .col1 {width: calc(100% - 40px);}
.mod .gutter40 .col1-2 {width: calc(50% - 40px);}
.mod .gutter40 .col1-3 {width: calc(33.33333333% - 40px);}
.mod .gutter40 .col2-3 {width: calc(66.66666666% - 40px);}
.mod .gutter40 .col1-4 {width: calc(25% - 40px);}
.mod .gutter40 .col3-4 {width: calc(75% - 40px);}
.mod .gutter40 .col1-5 {width: calc(20% - 40px);}
.mod .gutter40 .col2-5 {width: calc(40% - 40px);}
.mod .gutter40 .col3-5 {width: calc(60% - 40px);}
.mod .gutter40 .col4-5 {width: calc(80% - 40px);}
.mod .gutter40 .col1-6 {width: calc(16.66666666% - 40px);}
.mod .gutter40 .col5-6 {width: calc(83.33333333% - 40px);}

.mod .col1,
.mod .col1-2,
.mod .col1-3,
.mod .col2-3,
.mod .col1-4,
.mod .col3-4,
.mod .col1-5,
.mod .col2-5,
.mod .col3-5,
.mod .col4-5,
.mod .col1-6,
.mod .col5-6  {
  margin-right: 60px;
}

.mod .no-gutter > .col1,
.mod .no-gutter > .col1-2,
.mod .no-gutter > .col1-3,
.mod .no-gutter > .col2-3,
.mod .no-gutter > .col1-4,
.mod .no-gutter > .col3-4,
.mod .no-gutter > .col1-5,
.mod .no-gutter > .col2-5,
.mod .no-gutter > .col3-5,
.mod .no-gutter > .col4-5,
.mod .no-gutter > .col1-6,
.mod .no-gutter > .col5-6  {
  margin-right: 0;
}

.mod .gutter10 .col1,
.mod .gutter10 .col1-2,
.mod .gutter10 .col1-3,
.mod .gutter10 .col2-3,
.mod .gutter10 .col1-4,
.mod .gutter10 .col3-4,
.mod .gutter10 .col1-5,
.mod .gutter10 .col2-5,
.mod .gutter10 .col3-5,
.mod .gutter10 .col4-5,
.mod .gutter10 .col1-6,
.mod .gutter10 .col5-6 {
  margin-right: 10px;
}

.mod .gutter20 .col1,
.mod .gutter20 .col1-2,
.mod .gutter20 .col1-3,
.mod .gutter20 .col2-3,
.mod .gutter20 .col1-4,
.mod .gutter20 .col3-4,
.mod .gutter20 .col1-5,
.mod .gutter20 .col2-5,
.mod .gutter20 .col3-5,
.mod .gutter20 .col4-5,
.mod .gutter20 .col1-6,
.mod .gutter20 .col5-6 {
  margin-right: 20px;
}

.mod .gutter40 .col1,
.mod .gutter40 .col1-2,
.mod .gutter40 .col1-3,
.mod .gutter40 .col2-3,
.mod .gutter40 .col1-4,
.mod .gutter40 .col3-4,
.mod .gutter40 .col1-5,
.mod .gutter40 .col2-5,
.mod .gutter40 .col3-5,
.mod .gutter40 .col4-5,
.mod .gutter40 .col1-6,
.mod .gutter40 .col5-6 {
  margin-right: 40px;
}

.mod .col-set.reverse {flex-direction: row-reverse;}

@media screen and (min-width: 768px) {
  .mod .col-set.pc-reverse {flex-direction: row-reverse;}
}

/*---------------------------------------------
	[HD] 見出し
  ---------------------------------------------*/
.mod .content h1:not([class*="heading"]) {
  margin: 0 0 40px;
  color: #000;
  font-size: 1.75rem;
  line-height: 1.6;
}
.mod h2:not([class*="heading"]),
.mod .heading1 {
  position: relative;
  margin: 50px 0 30px;
  padding-bottom: 10px;
  color: #000;
  font-size: 1.75rem;
  line-height: 1.6;
}

.mod h2:not([class*="heading"]):after,
.mod .heading1:after {
  content: "";
  position: absolute;
  display: block;
  width: 60px;
  height: 1px;
  left: 0;
  bottom: 0;
  background-color: #000;
}

.mod h2:not([class*="heading"]).center,
.mod .heading1.center {
  margin: 70px 0 40px;
}
.mod h2:not([class*="heading"]).center:after,
.mod .heading1.center:after {
  right: 0;
  margin: 10px auto 0;
}

.mod h2.no-line,
.mod .heading1.no-line {
  padding-bottom: 0;
}
.mod h2.no-line:after,
.mod .heading1.no-line:after {
  content: none;
}

.mod h2.en-jp .txt-en {
  font-size: 2.25rem;
  letter-spacing: .2em;
}
.mod h2.en-jp span:not(.txt-en) {
  display: block;
  margin-top: -5px;
  font-size: 1rem;
}
.mod h3.sub-heading {
  margin-top: -25px !important;
  font-size: 1.5rem;
}

.mod h3:not([class*="heading"]),
.mod .heading2 {
  position: relative;
  margin: 50px 0 20px;
  color: #000;
  font-size: 1.5rem;
  line-height: 1.6;
}
.mod h3.icon-check {
  position: relative;
  padding-left: 60px;
}
.mod h3.icon-check::before {
  display: block;
  position: absolute;
  top: -2px;
  left: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid #ae9e84;
  content: "";
}
.mod h3.icon-check::after {
  display: block;
  position: absolute;
  top: 13px;
  left: 15px;
  width: 12px;
  height: 7px;
  border-left: 1px solid #ae9e84;
  border-bottom: 1px solid #ae9e84;
  transform: rotate(-45deg);
  content: "";
}
.mod h3.icon-check + * {
  padding-left: 60px;
}

.mod .heading2 span {
  font-size: 0.88rem;
}

.mod h4:not([class*="heading"]),
.mod .heading3 {
  position: relative;
  margin: 30px 0 20px;
  color: #000;
  font-size: 1.25rem;
  line-height: 1.6;
}

.mod h5:not([class*="heading"]),
.mod .heading4 {
  margin: 20px 0 20px;
  color: #000;
  font-size: 1.25rem;
  line-height: 1.6;
}

.mod h6:not([class*="heading"]),
.mod .heading5 {
  margin: 10px 0 10px;
  color: #000;
  font-size: 1.06rem;
  line-height: 1.6;
}

.mod .heading-box {
  margin: 0;
  padding: 42px 4vw;
  color: #fff;
  font-size: 1.75rem;
  line-height: 1.6;
  text-align: center;
  background-color: #c1b4a0;
}
.mod .title-line {
  display: table;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}
.mod .title-line::before,
.mod .title-line::after {
  display: block;
  position: absolute;
  top: 50%;
  left: -90px;
  width: 70px;
  height: 1px;
  background: #999;
  content: "";
}
.mod .title-line::after {
  left: auto;
  right: -90px;
}
.mod .title-line.full {
  display: block;
  text-align: center;
}
.mod .title-line.full span {
  padding: 0 25px;
  background: #fff;
}
.mod .title-line.full::before {
  left: 0;
  width: 100%;
  background: #e5e5e5;
  z-index: -1;
}
.mod .title-line.full::after {
  display: none;
}
.mod .title-line.full::aftr {
  right: -410px;
}
.mod h2.ribbon {
  position: relative;
  padding-bottom: 5px;
  color: #fff;
  text-align: center;
  line-height: 1.4;
}
.mod h2.ribbon span:not(.ribbon-upper):not(.ribbon-lower) {
  display: block;
  position: relative;
  margin-bottom: 10px;
  font-size: .93rem;
}
.mod h2.ribbon::after {
  display: none;
}

.mod h2.ribbon .ribbon-upper {
  position: absolute;
  top: -20%;
  right: 0;
  bottom: 50%;
  left: 0;
  width: calc(100% - 12.5%);
  height: 40%;
  margin: auto;
  z-index: -1;
  background: #b2a28a;
  transform: scaleY(1.5) perspective(1.5em) rotateX(-4.4deg);
  transform-origin: top;
  overflow: hidden;
}
.mod h2.ribbon .ribbon-upper::before {
  position: absolute;
  left: 50%;
  bottom: -1px;
  background: #c1b4a0;
  width: 100%;
  height: 50%;
  transform: translateX(-50%);
  content: "";
}
.mod h2.ribbon .ribbon-lower {
  position: absolute;
  top: 50%;
  right: 0;
  bottom: 0;
  left: 0;
  width: calc(100% - 12.5%);
  height: 50%;
  margin: auto;
  z-index: -1;
  background: #c1b4a0;
  transform: scaleY(1.5) perspective(1.5em) rotateX(4deg);
  transform-origin: bottom;
}

.mod h2:not([class*="heading"]) + h3:not([class*="heading"]),
.mod h2:not([class*="heading"]) + h4:not([class*="heading"]),
.mod h3:not([class*="heading"]) + h4:not([class*="heading"]),
.mod h2:not([class*="heading"]) + h5:not([class*="heading"]),
.mod h3:not([class*="heading"]) + h5:not([class*="heading"]),
.mod h4:not([class*="heading"]) + h5:not([class*="heading"]),
.mod h2:not([class*="heading"]) + h6:not([class*="heading"]),
.mod h3:not([class*="heading"]) + h6:not([class*="heading"]),
.mod h4:not([class*="heading"]) + h6:not([class*="heading"]),
.mod h5:not([class*="heading"]) + h6:not([class*="heading"]),
.mod h2:not([class*="heading"]) + [class*="heading"],
.mod h3:not([class*="heading"]) + [class*="heading"],
.mod h4:not([class*="heading"]) + [class*="heading"],
.mod h5:not([class*="heading"]) + [class*="heading"],
.mod h6:not([class*="heading"]) + [class*="heading"],
.mod [class*="heading"] + h2:not([class*="heading"]),
.mod [class*="heading"] + h3:not([class*="heading"]),
.mod [class*="heading"] + h4:not([class*="heading"]),
.mod [class*="heading"] + h5:not([class*="heading"]),
.mod [class*="heading"] + h6:not([class*="heading"]),
.mod [class*="heading"] + [class*="heading"],
.mod h2:first-child,
.mod h2.center:first-child,
.mod h3:first-child,
.mod h4:first-child,
.mod h5:first-child,
.mod h6:first-child,
.mod [class*="heading"]:first-child {
  margin-top: 0;
}

.mod .col-set + h2 {
  margin-top: 30px;
}
.mod .col-set + h3 {
  margin-top: 20px;
}
.mod .col-set + h4 {
  margin-top: 10px;
}
.mod .col-set + h5 {
  margin-top: 0;
}
.mod .col-set + h6 {
  margin-top: 0;
}
.mod .col-set + .heading1 {
  margin-top: 30px;
}
.mod .col-set + .heading2 {
  margin-top: 20px;
}
.mod .col-set + .heading3 {
  margin-top: 10px;
}
.mod .col-set + .heading4 {
  margin-top: 0;
}
.mod .col-set + .heading5 {
  margin-top: 0;
}

.mod .img-set > .img + h2,
.mod .img-set > .img + h3,
.mod .img-set > .img + h4,
.mod .img-set > .img + h5,
.mod .img-set > .img + h6,
.mod .img-set > .img + .heading1,
.mod .img-set > .img + .heading2,
.mod .img-set > .img + .heading3,
.mod .img-set > .img + .heading4,
.mod .img-set > .img + .heading5 {
  margin-top: 0;
}

.mod .txt-white h2:not([class*="heading"]):after,
.mod .txt-white h3:not([class*="heading"]):after,
.mod .txt-white h4:not([class*="heading"]):after,
.mod .txt-white .heading1:after,
.mod .txt-white .heading2:after,
.mod .txt-white .heading3:after,
.mod .txt-white ul li:before {
  background-color: #fff;
}
.mod .txt-white h3:not([class*="heading"]) {
  border-bottom-color: rgba(255, 255, 255, 0.2);
}

/*---------------------------------------------
	[TX] テキスト
  ---------------------------------------------*/
.mod p {
  margin-bottom: 20px;
}
p:empty {
  display: none;
}

.mod b,
.mod strong {
  color: #000;
  font-weight: bold;
}

.mod .caution {
  color: #bc001d !important;
}
.mod .underline {
  background-image: linear-gradient(#fff 60%, #e3d9c8 0%);
}
.mod .underline a {
  text-decoration: none;
}

.mod .copy {
  color: #000;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.6;
}
.mod .txt-en.copy {
  font-weight: normal;
}

/* ----- 注記 ----- */
.mod .note {
  position: relative;
  padding-left: 1.4em;
  color: #555 !important;
}

.mod .note-num {
  position: relative;
  padding-left: 2.4em;
}

.mod .note + .note,
.mod .note-num + .note-num {
  margin-top: -15px;
}

.mod .note:before,
.mod .note-num:before {
  content: "※";
  position: absolute;
  width: auto;
  height: auto;
  top: 0;
  left: 0;
  margin: 0;
  background-color: transparent !important;
  border-radius: 0;
}

.mod .note-num:before {
  content: "※" attr(data-num);
}

/* ----- 省略 ----- */
.mod .txt-ellipsis {
  overflow: hidden;
}
.mod .txt-ellipsis:not([data-line]), .mod .txt-ellipsis[data-line="1"] {
  white-space: nowrap;
  text-overflow: ellipsis;
}
.mod .txt-ellipsis[data-line]:not([data-line="1"]) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
}
.mod .txt-ellipsis[data-line="2"] {
  height: 3.6em;
  -webkit-line-clamp: 2;
}
.mod .txt-ellipsis[data-line="3"] {
  height: 5.4em;
  -webkit-line-clamp: 3;
}
.mod .txt-ellipsis[data-line="4"] {
  height: 7.2em;
  -webkit-line-clamp: 4;
}
.mod .txt-ellipsis[data-line="5"] {
  height: 9.0em;
  -webkit-line-clamp: 5;
}
.mod [class*="panel"] .txt-ellipsis[data-line="2"] {
  height: 3.2em;
}
.mod [class*="panel"] .txt-ellipsis[data-line="3"] {
  height: 4.8em;
}
.mod [class*="panel"] .txt-ellipsis[data-line="4"] {
  height: 6.4em;
}
.mod [class*="panel"] .txt-ellipsis[data-line="5"] {
  height: 8.0em;
}

.mod h2 + .txt-sub {
  margin: -20px 0 40px;
}
.mod h2.center + .txt-sub {
  text-align: center;
}

.mod .txt-vertical {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
}

/*---------------------------------------------
	[HR] 区切り線
  ---------------------------------------------*/
.mod hr {
  clear: both;
  margin: 15px 0;
  color: #fff;
  background: none transparent;
  border-top: 0px none transparent;
  border-right: 0px none transparent;
  border-left: 0px none transparent;
  border-bottom: 1px solid #e5e9e9;
}

.mod .content.bg-gray hr {border-color: #ded9d5;} /* add 20201207 */

/*---------------------------------------------
	[IG] 画像
  ---------------------------------------------*/
.mod .img {
  margin-bottom: 20px;
  text-align: center;
}
.mod .img > a {
  position: relative;
  display: inline-block;
  max-width: 100%;
  vertical-align: top;
  overflow: hidden;
}
.mod .img.full > a {
  display: block;
}
.mod .img img.center {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.mod .img .modal-video:before,
.mod .modal-video .img:before {
  content: "";
  position: absolute;
  z-index: 1;
  display: block;
  width: 64px;
  height: 64px;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background-image: url(../images/icon_play.png);
  background-repeat: no-repeat;
  background-size: 100%;
}

.mod .img.full img {
  width: 100%;
}

/* ホバーエフェクト */
.mod .img > a:after,
.mod a .img:after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  opacity: 0;
  -webkit-transition: opacity .2s linear;
  transition: opacity .2s linear;
}

.mod .img .modal-video:after,
.mod .modal-video .img:after {
  opacity: .5 !important;
}

html:not(.sp) .mod .img > a:hover:after,
html:not(.sp) .mod a:hover .img:after {
  opacity: .5;
}

.mod .img > a img,
.mod .img > a .bg-img,
.mod a .img img,
.mod a .img .bg-img {
  -webkit-transition: -webkit-transform .2s ease-out;
  transition: -webkit-transform .2s ease-out;
  transition: transform .2s ease-out;
  transition: transform .2s ease-out, -webkit-transform .2s ease-out;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

html:not(.sp) .mod .img > a:hover img,
html:not(.sp) .mod .img > a:hover .bg-img,
html:not(.sp) .mod a:hover .img img,
html:not(.sp) .mod a:hover .img .bg-img {
  -webkit-transform: scale(1.05);
  transform: scale(1.05);
}

/* ----- [IG2] 画像 > キャプションあり ----- */
.mod figure {
  margin-bottom: 20px;
}

.mod .caption {
  display: block;
  margin-top: -10px;
  margin-left: auto;
  margin-right: auto;
  font-size: 0.94rem;
  line-height: 1.6;
}
.mod .left .caption {
  margin-left: 0;
}
.mod .right .caption {
  margin-right: 0;
}
.mod .img .caption {
  margin-top: 10px;
}

/* ----- [IG3] 画像 > 画像＋テキスト ----- */
.mod .img-set,
.mod .thumb-set {
  overflow: hidden;
}
.mod .img-set > .img,
.mod .thumb-set > .img {
  float: left;
  max-width: 50%;
  margin-right: 30px;
  padding-right: 30px;
}
.mod .img-set > .img.right,
.mod .thumb-set > .img.right {
  float: right;
  max-width: 50%;
  margin-right: 0;
  padding-right: 0;
  margin-left: 30px;
  padding-left: 30px;
}
.mod .img-set.gutter-half > .img,
.mod .thumb-set > .img {
  margin-right: 15px;
  padding-right: 15px;
}
.mod .img-set.gutter-half > .img.right ,
.mod .thumb-set > .img.right {
  margin-right: 0;
  padding-right: 0;
  margin-left: 15px;
  padding-left: 15px;
}
.mod .img-set.w-auto > .img,
.mod .img-set.w-auto > .img.right {
  max-width: none;
}

@media screen and (min-width: 768px) {
  .mod .img-set > .img.pc-w1-3 {
    width: calc(33.33333333% + 2.125vw);
  }
  .mod .img-set > .img.pc-w1-4 {
    width: calc(25% + 2.125vw);
  }
}

.mod .thumb-set > .img img {
  width: 120px;
}
.mod .thumb-set > .img .bg-img {
  width: 120px;
  height: 120px;
  border-radius: 100%;
}
.mod .img-set > .img + .txt,
.mod .thumb-set > .img + .txt {
  overflow: hidden;
}

.mod .thumb-set .name {
  color: #000;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1.6;
}
.mod .thumb-set .name span:not(.ll) {
  color: #555;
  font-size: 0.94rem;
  font-weight: normal;
}

.mod .img.thumb {
  width: 120px;
  height: 120px;
  border-radius: 100%;
  overflow: hidden;
}
.mod a .img.thumb.center {
  margin-left: auto;
  margin-right: auto;
}
.mod a .img.thumb:after {
  content: none;
}
.mod .img.thumb + .name span {
  color: #555 !important;
  font-size: 0.94rem;
}

/*---------------------------------------------
	[LT] リスト
  ---------------------------------------------*/
.mod ul {
  margin-bottom: 20px;
}
.mod ul li {
  position: relative;
  margin-bottom: 10px;
  padding: 0 0 0 1.8em;
}
.mod ul li:before {
  content: "";
  position: absolute;
  display: block;
  width: 6px;
  height: 6px;
  top: calc(.9em - 3px);
  left: .5em;
  background-color: #000;
  border-radius: 50%;
}
.mod ul li:last-of-type {
  margin-bottom: 0;
}
.mod ul.col-set {
  margin-bottom: 0;
}
.mod ul.col-set li {
  margin-bottom: 15px;
  padding-left: 0;
}
.mod ul.col-set li:before {
  display: none;
}

.mod ol {
  margin-bottom: 20px;
  padding: 0;
  counter-reset: num;
  list-style-type: none;
}
.mod ol > li {
  position: relative;
  margin-bottom: 10px;
  padding: 0 0 0 1.8em;
  text-indent: -1.8em;
}
.mod ol > li:before {
  counter-increment: num;
  content: counter(num)'.';
  padding-right: .5em;
  color: #000;
  font-weight: bold;
}

.mod .img-set .img ~ ul,
.mod .img-set .img ~ ol {
  overflow: hidden;
}

.mod ol li:last-of-type {
  margin-bottom: 0;
}

.mod ul ul,
.mod ol ol,
.mod ol ul {
  margin: 10px 0 0;
}


.mod ul .icon-check {
  position: relative;
  padding-left: 30px;
}
.mod ul .icon-check::before {
  display: block;
  position: absolute;
  top: 3px;
  left: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: transparent;
  border: 1px solid #ae9e84;
  content: "";
}
.mod ul .icon-check::after {
  display: block;
  position: absolute;
  top: 10px;
  left: 6px;
  width: 8px;
  height: 4px;
  border-left: 1px solid #ae9e84;
  border-bottom: 1px solid #ae9e84;
  transform: rotate(-45deg);
  content: "";
}
.mod h3.icon-check + * {
  padding-left: 60px;
}


/* ----- [LT3] リスト > 定義リスト ----- */
.mod dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 20px;
  overflow: hidden;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.mod dl.border-set {
  border-bottom: solid 1px #e5e9e9;
}
.mod dl.border-set > dt {
  border-top: solid 1px #e5e9e9;
  padding: 20px 0;
}
.mod dl.border-set > dd {
  border-top: solid 1px #e5e9e9;
  padding: 20px 0 20px 30px;
}
.mod dl dt {
  width: 200px;
  padding: 0 0 10px;
  font-weight: bold;
  color: #000;
}
.mod dl dt.w50 ~ dt {
  width: 50px;
}
.mod dl dt.w50 ~ dd {
  width: calc(100% - 50px);
}
.mod dl dt.w60 ~ dt {
  width: 60px;
}
.mod dl dt.w60 ~ dd {
  width: calc(100% - 60px);
}
.mod dl dt.w70 ~ dt {
  width: 70px;
}
.mod dl dt.w70 ~ dd {
  width: calc(100% - 70px);
}
.mod dl dt.w80 ~ dt {
  width: 80px;
}
.mod dl dt.w80 ~ dd {
  width: calc(100% - 80px);
}
.mod dl dt.w90 ~ dt {
  width: 90px;
}
.mod dl dt.w90 ~ dd {
  width: calc(100% - 90px);
}
.mod dl dt.w100 ~ dt {
  width: 100px;
}
.mod dl dt.w100 ~ dd {
  width: calc(100% - 100px);
}
.mod dl dt.w110 ~ dt {
  width: 110px;
}
.mod dl dt.w110 ~ dd {
  width: calc(100% - 110px);
}
.mod dl dt.w120 ~ dt {
  width: 120px;
}
.mod dl dt.w120 ~ dd {
  width: calc(100% - 120px);
}
.mod dl dt.w130 ~ dt {
  width: 130px;
}
.mod dl dt.w130 ~ dd {
  width: calc(100% - 130px);
}
.mod dl dt.w140 ~ dt {
  width: 140px;
}
.mod dl dt.w140 ~ dd {
  width: calc(100% - 140px);
}
.mod dl dt.w150 ~ dt {
  width: 150px;
}
.mod dl dt.w150 ~ dd {
  width: calc(100% - 150px);
}
.mod dl dt.w160 ~ dt {
  width: 160px;
}
.mod dl dt.w160 ~ dd {
  width: calc(100% - 160px);
}
.mod dl dt.w170 ~ dt {
  width: 170px;
}
.mod dl dt.w170 ~ dd {
  width: calc(100% - 170px);
}
.mod dl dt.w180 ~ dt {
  width: 180px;
}
.mod dl dt.w180 ~ dd {
  width: calc(100% - 180px);
}
.mod dl dt.w190 ~ dt {
  width: 190px;
}
.mod dl dt.w190 ~ dd {
  width: calc(100% - 190px);
}
.mod dl dt.w200 ~ dt {
  width: 200px;
}
.mod dl dt.w200 ~ dd {
  width: calc(100% - 200px);
}
.mod dl dd {
  width: calc(100% - 200px);
  padding: 0 0 10px 30px;
}
.mod dl:not(.border-set) dt:last-of-type, .mod dl:not(.border-set) dd:last-of-type {
  padding-bottom: 0;
}
.mod dl p:last-child,
.mod dl ul:last-child,
.mod dl ol:last-child,
.mod dl dl:last-child {
  margin-bottom: 0;
}
.mod dl.news > dt {
  width: 7em;
  padding-bottom: 18px;
  font-size: 0.94rem;
  font-weight: normal;
  font-family: Arial, Helvetica, "sans-serif";
}
.mod dl.news > dd {
  width: calc(100% - 7em);
  padding-bottom: 18px;
  padding-left: 0;
  font-size: 0.94rem;
}
.mod dl.news > dd .tag,
.mod dl.news > dd .label {
  clear: both;
  float: left;
  height: 1.8em;
  margin: 0 20px 0 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.mod dl.news > dd .tag a,
.mod dl.news > dd .label span {
  width: 10em;
  margin: 0;
  padding: 4px 10px;
  font-size: 0.69rem;
}
.mod dl.news > dd p {
  overflow: hidden;
  margin-bottom: 10px;
}
.mod dl.news > dd .link-icon:not(li) + .link-icon {
  margin-top: 0;
}
.mod dl.news > dd p:last-child {
  margin-bottom: 0;
}
.mod dl.news > dd a {
  font-weight: inherit;
}
.mod dl.news > dd a:not(:hover) {
  color: #555;
  text-decoration: none;
}
html:not(.sp) .mod dl.news > dd a:hover {
  text-decoration: underline;
}
.mod dl.news > dd a[href$=".pdf"]:after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin: -2px 0 0 8px;
  vertical-align: middle;
  background-image: url(../images/icon_link.png);
  background-repeat: no-repeat;
  background-size: 480px 240px;
  background-position-x: -72px;
  background-position-y: 0;
}

/* 定義リスト + インラインラベル */
.mod dl.label-color {
  font-size: 0.88rem;
}
.mod dl.label-color dd {
  margin-top: 3px;
  padding-left: 15px;
}
.mod dl dt .label-inline {
  width: 100%;
  margin: 0;
  padding: 7px 5px 8px;
  font-size: 0.88rem;
  font-weight: normal;
  text-align: center;
}



/*---------------------------------------------
	[LK1] アイコンリンク
  ---------------------------------------------*/
.mod .link-icon:not(li) + .link-icon {
  margin-top: -10px;
}

.mod .link-icon a,
.mod a .link-icon {
  position: relative;
  display: inline-block;
  text-decoration: none;
}

.mod a .link-icon {
  display: block;
}
html:not(.sp) .mod .link-icon a:hover,
html:not(.sp) .mod a:hover .link-icon {
  text-decoration: none;
}

.mod .link-icon a:after,
.mod a .link-icon:after {
  width: 24px;
  height: 24px;
  background-image: url(../images/icon_link.png);
  background-repeat: no-repeat;
  background-size: 480px 240px;
  background-position-y: 0;
  content: "";
  display: inline-block;
  margin: -2px 0 0 2px;
  vertical-align: middle;
}

.mod .link-icon a:not([class*="icon-"]):after,
.mod a .link-icon:not([class*="icon-"]):after {
  -webkit-transition: -webkit-transform .2s linear;
  transition: -webkit-transform .2s linear;
  transition: transform .2s linear;
  transition: transform .2s linear, -webkit-transform .2s linear;
}

html:not(.sp) .mod .link-icon a:not([class*="icon-"]):hover:after,
html:not(.sp) .mod a:hover .link-icon:not([class*="icon-"]):after {
  -webkit-transform: translate3d(3px, 0, 0);
          transform: translate3d(3px, 0, 0);
}

.mod .link-icon .icon-download:after,
.mod a .link-icon.icon-download:after {
  background-position-x: -24px;
  background-position-y: 0;
}

.mod .link-icon .icon-window:after,
.mod a .link-icon.icon-window:after {
  background-position-x: -48px;
  background-position-y: 0;
}

.mod .link-icon .icon-pdf:after,
.mod a .link-icon.icon-pdf:after {
  background-position-x: -72px;
  background-position-y: 0;
}

.mod .link-icon .icon-enlarge:after,
.mod a .link-icon.icon-enlarge:after {
  background-position-x: -168px;
  background-position-y: 0;
}

.mod .link-icon .icon-search:after,
.mod a .link-icon.icon-search:after {
  background-position-x: -192px;
  background-position-y: 0;
}

.mod .link-icon .icon-contact:after,
.mod a .link-icon.icon-contact:after {
  background-position-x: -216px;
  background-position-y: 0;
}

.mod .link-icon .icon-play:after,
.mod a .link-icon.icon-play:after {
  background-position-x: -240px;
  background-position-y: 0;
}

.mod .link-icon .icon-anchor:after,
.mod a .link-icon.icon-anchor a:after {
  width: 8px;
  height: 8px;
  margin: -8px 0 0 8px;
  border-top: 1px solid #33739b;
  border-right: 1px solid #33739b;
  transform: translate3d(0,0,0) rotate(135deg);
  background: none;
  transition: transform .2s linear;
}
.mod .link-icon.ll .icon-anchor::after,
.mod .ll a .link-icon.icon-anchor a:after {
  width: 8px;
  height: 8px;
  margin: -8px 0 0 8px;
}

html:not(.sp) .mod .link-icon .icon-anchor:hover:after,
html:not(.sp) .mod a:hover .link-icon.icon-anchor a:after {
  transform: translate3d(0, 3px, 0) rotate(135deg);
}

.mod li.link-icon {
  padding-left: 0;
}

.mod li.link-icon:before {
  display: none;
}


.mod .txt-white .link-icon a:after,
.mod .txt-white a .link-icon:after {
  background-position-y: -144px !important;
}
html:not(.sp) .mod .txt-dark a:hover {
  color: #888 !important;
}
.mod .txt-dark .link-icon a:after,
.mod .txt-dark a .link-icon:after {
  background-position-y: -96px !important;
}
.mod .txt-black .link-icon a:after,
.mod .txt-black a .link-icon:after {
  background-position-y: -120px !important;
}

.mod .txt-white .link-icon .icon-anchor:after,
.mod .txt-white a .link-icon.icon-anchor a:after {
  border-color: #fff;
}
.mod .txt-dark .link-icon .icon-anchor:after,
.mod .txt-dark a .link-icon.icon-anchor a:after {
  border-color: #555;
}
.mod .txt-black .link-icon .icon-anchor:after,
.mod .txt-black a .link-icon.icon-anchor a:after {
  border-color: #000;
}
.mod .txt-black .link-icon .no-anchor::after {
  border-color: #000;
/*  opacity: .3;*/
}


/*---------------------------------------------
	[LK2] 横並びリンク
  ---------------------------------------------*/
.mod .link-horizontal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 10px;
  line-height: 1.6;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.mod .link-horizontal a {
  position: relative;
  margin: 0 30px 10px 0;
  text-decoration: none;
}
.mod .link-horizontal a.no-anchor {
  color: #000 !important;
  opacity: .3;
  pointer-events: none;
}

html:not(.sp) .mod .link-horizontal a:hover {
  text-decoration: underline;
}
html:not(.sp) .mod .link-horizontal a[class^="icon-"]:hover,
html:not(.sp) .mod .link-horizontal a[class*=" icon-"]:hover {
  text-decoration: none;
}
.mod .link-horizontal a:last-child {
  margin-right: 15px;
}
.mod .link-horizontal.center {
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
}

/*---------------------------------------------
	[TG] タグ／ラベル
  ---------------------------------------------*/
.mod .tag,
.mod .label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.mod .tag.center,
.mod .label.center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.mod .tag.right,
.mod .label.right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.mod .tag {
  margin: 0 -8px 12px 0;
}
.mod .tag a {
  display: block;
  margin: 0 8px 8px 0;
  padding: 8px 15px;
  font-size: 0.81rem;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  overflow: hidden;
  border-radius: 100px;
}

.mod .label {
  margin: 0 -10px 10px 0;
}
.mod .img-set > .label {
  margin-right: 0;
}

.mod .label span {
  display: block;
  margin: 0 10px 10px 0;
  padding: 3px 10px 2px;
  font-size: 0.81rem;
  line-height: 1.4;
  text-align: center;
  border-radius: 100px;
}

.mod .label-inline {
  display: inline-block;
  margin: 0 10px;
  padding: 4px 6px 3px;
  font-size: 0.69rem;
  line-height: 1;
  color: #fff;
  text-transform: uppercase;
  vertical-align: middle;
}

.mod a .label {
  text-decoration: none;
}

.mod .tag a,
.mod .label span,
.mod .label-inline {
  color: #fff !important;
  background-color: #000;
}
.mod .label-inline.bg-pink {
  color: #000 !important;
  background-color: #fce9e6;
  font-weight: normal;
}
.mod .label-inline.bg-blue {
  color: #000 !important;
  background-color: #e3eef8;
}
.mod .label.gray span {
  background-color: #eee9e6;
}

.mod .tag a.bg-white,
.mod .tag a.bg-light,
.mod .tag a.bg-gray,
.mod .label span.bg-white,
.mod .label span.bg-light,
.mod .label span.bg-gray,
.mod .label-inline.bg-white,
.mod .label-inline.bg-light,
.mod .label-inline.bg-gray {
  color: #555 !important;
}
.mod .tag a {
  -webkit-transition: opacity .2s linear;
  transition: opacity .2s linear;
}
html:not(.sp) .mod .tag a:hover {
  opacity: .8;
  text-decoration: none;
}

.mod .text-tag .unit {
  position: relative;
  display: inline-block;
  margin-bottom: 50px;
}
.mod .text-tag .unit button {
  display: inline-block;
  width: 25px;
  height: 25px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(0,0,0,.4);
  border-radius: 100%;
  background-color: transparent;
  background-image: url(../images/icon_link.png);
  background-repeat: no-repeat;
  background-size: 480px 240px;
  background-position: -120px -120px;
  transition: background-color .2s linear;
  outline: 0;
  cursor: pointer;
}
html:not(.sp) .mod .text-tag .unit button:hover {
  background-color: #000;
  background-position-y: -144px;
}
.mod .text-tag .unit button.is-show,
html:not(.sp) .mod .text-tag .unit button.is-show:hover {
  background-position-x: -144px;
}
.mod .text-tag .heading,
.mod .text-tag a {
  display: inline-block;
  margin: 0 1.5em 5px 0;
  color: #555;
  text-decoration: none;
  vertical-align: top;
}
.mod .text-tag > a {
  margin: 0 1em 0 0;
  cursor: pointer;
}
.mod .text-tag a.current {
  font-weight: bold;
  color: #000;
}


/*---------------------------------------------
	[BT] ボタン
  ---------------------------------------------*/
.mod .btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0 -20px 0 0;
  line-height: 1.6;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.mod .btn.center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.mod .btn.right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.mod .btn.full {
  margin-right: 0;
}
.mod .btn > * {
  display: block;
  min-width: 150px;
  margin: 0 20px 20px 0;
  padding: 8px 0 7px;
  font-size: inherit;
  text-decoration: none;
  border: 0 none;
  cursor: pointer;
  outline: none;
  text-align: center;
}
html:not(.sp) .mod .btn a:hover {
  text-decoration: none;
}
.mod .btn.large {
  margin-top: 50px;
}
.mod .btn.large > * {
  min-width: 400px;
  padding: 18px 0 17px;
}
.mod .btn.large > :not(.ghost) {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
.mod .btn .ghost {
  padding: 16px 0 15px;
  min-width: 400px;
  -webkit-transition: background-color .2s linear, border .2s linear;
  transition: background-color .2s linear, border .2s linear;
}
.mod .btn.full > * {
  width: 100%;
  min-width: 0;
  margin-right: 0;
}

.mod .btn.w-gap {
  margin-right: -60px;
}

.mod .btn.w-gap > * {
  margin-right: 60px;
}
.mod .btn.thick > * {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  min-width: 510px;
  height: 105px;
}
.mod .btn.thick.full > * {
  width: 100%;
  min-width: 0;
}

.mod .btn em {
  font-size: 0.75em;
}

.mod .btn span:not(.m) {
  position: relative;
  display: inline-block;
  padding: 0 40px 0 20px;
}
.mod .btn span:not(.m):after {
  width: 24px;
  height: 24px;
  background-image: url(../images/icon_link.png);
  background-repeat: no-repeat;
  background-size: 480px 240px;
  content: "";
  position: absolute;
  display: block;
  top: calc(50% - 12px);
  right: 12px;
  vertical-align: middle;
  -webkit-transition: -webkit-transform .2s linear;
  transition: -webkit-transform .2s linear;
  transition: transform .2s linear;
  transition: transform .2s linear, -webkit-transform .2s linear;
}
.mod .btn span.m {
  display: block;
  text-align: left;
}
.mod .btn.sm span:after {
  margin-top: -2px;
}
.mod .btn .icon-download span:after {
  background-position-x: -24px;
}
.mod .btn .icon-window span:after {
  background-position-x: -48px;
}
.mod .btn .icon-pdf span:after {
  background-position-x: -72px;
}
.mod .btn .icon-index span:after {
  background-position-x: -96px;
}
.mod .btn .icon-open span:after {
  background-position-x: -120px;
}
.mod .btn .icon-close span:after {
  background-position-x: -144px;
}
.mod .btn .icon-enlarge span:after {
  background-position-x: -168px;
}
.mod .btn .icon-search span:after {
  background-position-x: -192px;
}
.mod .btn .icon-contact span:after {
  background-position-x: -216px;
}
.mod .btn .icon-play span:after {
  background-position-x: -240px;
}
html:not(.sp) .mod .btn > *:not([class*="icon-"]):hover span:after {
  -webkit-transform: translate3d(3px, 0, 0);
          transform: translate3d(3px, 0, 0);
}
.mod .btn .icon-back span {
  padding: 0 30px 0 40px;
}
.mod .btn .icon-back span:after {
  left: 12px;
  right: auto;
  transform: scale(-1, 1);
  transition: transform .2s linear;
}
html:not(.sp) .mod .btn .icon-back:hover span:after {
  transform: translate3d(-3px, 0, 0) scale(-1, 1);
}
.mod .btn .icon-anchor span:after {
  width: 8px;
  height: 8px;
  top: 4px;
  right: 22px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translate3d(0,0,0) rotate(135deg);
  background: none;
  transition: transform .2s linear;
}

html:not(.sp) .mod .btn .icon-anchor:hover span:after {
  transform: translate3d(0, 3px, 0) rotate(135deg);
}
.mod .btn .icon-anchor.upward span:after {
  top: 9px;
  transform: translate3d(0,0,0) rotate(-45deg);
}
html:not(.sp) .mod .btn .icon-anchor.upward:hover span:after {
  transform: translate3d(0, -3px, 0) rotate(-45deg);
}
.mod .btn > * {
  color: #fff;
  background-color: #e50628;
  -webkit-transition: opacity .2s linear;
  transition: opacity .2s linear;
}
.mod .btn > * span:after {
  background-position-y: -144px;
}
html:not(.sp) .mod .btn > *:hover {
  color: #fff;
  opacity: .8;
}
.mod .btn .bg-white,
.mod .btn .bg-light,
.mod .btn .bg-gray {
  color: #555;
}
.mod .btn .bg-white:not(.ghost) span:after,
.mod .btn .bg-light:not(.ghost) span:after,
.mod .btn .bg-gray:not(.ghost) span:after {
  background-position-y: -120px;
}
.mod .btn .bg-white.icon-anchor:not(.ghost) span:after,
.mod .btn .bg-light.icon-anchor:not(.ghost) span:after,
.mod .btn .bg-gray.icon-anchor:not(.ghost) span:after {
  border-color: #555;
}
html:not(.sp) .mod .btn .bg-white:hover,
html:not(.sp) .mod .btn .bg-light:hover,
html:not(.sp) .mod .btn .bg-gray:hover {
  color: #555;
}
.mod .btn > .bg-dark:not(.ghost)  {
  transition: background-color .2s linear;
}
html:not(.sp) .mod .btn > .bg-dark:not(.ghost):hover {
  background-color: #595f61 !important;
  opacity: 1;
}

.mod .btn .ghost {
  color: #000;
  border: solid 1px #d6d6d6;
  background-color: transparent !important;
}
.mod .btn .ghost span:after {
  background-position-y: -120px;
}
html:not(.sp) .mod .btn .ghost:hover {
  color: #fff;
  border-color: #000;
  background-color: #000 !important;
  opacity: 1;
}
html:not(.sp) .mod .btn .ghost:hover span:after {
  background-position-y: -144px;
}
.mod .btn .ghost.bg-dark {
  color: #434c4d;
  border: solid 2px #434c4d;
}
.mod .btn .ghost.bg-dark span:after {
  background-position-y: -120px;
}
html:not(.sp) .mod .btn .ghost.bg-dark:hover {
  background-color: #434c4d !important;
}

.mod .txt-white .btn .ghost:not(:hover) {
  border-color: rgba(255, 255, 255, 0.5);
}
.mod .txt-white .btn .ghost span:after {
  background-position-y: -144px;
}
html:not(.sp) .mod .txt-white .btn .ghost:hover {
  background-color: #fff !important;
  border-color: #fff !important;
}
html:not(.sp) .mod .txt-white .btn .ghost:hover span {
  color: #000 !important;
}
html:not(.sp) .mod .txt-white .btn .ghost:hover span:after {
  background-position-y: -120px !important;
}

.mod .btn .ghost.icon-anchor:not(:hover) span:after {
  border-color: #000;
}
.mod .txt-white .btn .ghost.icon-anchor:not(:hover) span:after {
  border-color: #fff;
}
html:not(.sp) .mod .txt-white .btn .ghost.icon-anchor:hover span:after {
  border-color: #000;
}

.mod .btn.contact a span:before,
.mod .btn.request a span:before {
  content: "";
  display: inline-block;
  width: 45px;
  height: 45px;
  margin-right: 12px;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 45px;
}
.mod .btn.contact a span:before {
  background-image: url("../images/icon/icon_contact.png");
}
.mod .btn.request a span:before {
  background-image: url("../images/icon/icon_request.png");
}
.mod .content .btn.request a {
  font-size: 1.25rem;
  line-height: 1.2;
}
.mod .content .btn.request a i {
  display: inline-block;
  font-size: 0.88rem;
  font-style: normal;
}
.mod .content .btn.request a span:before {
  float: left;
  margin-top: 4px;
  margin-right: 6px;
}


/*---------------------------------------------
	[BT3] シェアボタン
  ---------------------------------------------*/
.mod .btn-share {
  margin: 15px -20px 10px 0;
  text-align: right;
}
.mod .btn-share > div {
  display: inline-block;
  margin: 0 20px 10px 0;
}
.mod .btn-share > div a {
  display: block;
  width: 24px;
  height: 24px;
  overflow: hidden;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}
.mod .btn-share > div a span {
  display: none;
}
.mod .btn-share .share-facebook a {
  background-image: url("../images/icon/icon_fb.svg");
}
.mod .btn-share .share-twitter a {
  background-image: url("../images/icon/icon_tw.svg");
}
.mod .btn-share .share-line a {
  background-image: url("../images/icon/icon_line.svg");
}

/*---------------------------------------------
	[BT5] ページトップボタン
  ---------------------------------------------*/
.mod #pagetop {
  bottom: 0;
}

.mod #btn-pagetop {
  position: absolute;
  width: 48px;
  height: 48px;
  top: 0;
  right: 30px;
  overflow: hidden;
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  background-color: #fff;
  transition: transform .3s ease-out, background-color .2s linear;
}
html:not(.sp) .mod #btn-pagetop:hover {
  background-color: #000;
}
.mod #btn-pagetop.show {
  transform: translate3d(0, -80px, 0);
}
.mod #btn-pagetop a {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  text-indent: -9999px;
}
.mod #btn-pagetop a:after {
  width: 24px;
  height: 24px;
  background-image: url(../images/icon_link.png);
  background-repeat: no-repeat;
  background-size: 480px 240px;
  content: "";
  position: absolute;
  display: block;
  left: 12px;
  top: 50%;
  margin-top: -12px;
  background-position-x: 0;
  background-position-y: -120px;
  transform: rotate(90deg) scaleX(-1);
  transition: transform .2s linear;
}
html:not(.sp) .mod #btn-pagetop a:hover:after {
  background-position-y: -144px;
  transform: rotate(90deg) scaleX(-1) translate3d(3px, 0, 0);
}

@media screen and (max-width: 767px) {
  .mod #btn-pagetop.show {
    -webkit-transform: translate3d(0, -135px, 0);
    transform: translate3d(0, -135px, 0);
  }
  .mod #bottombar.is-hide + #pagetop #btn-pagetop.show {
    -webkit-transform: translate3d(0, -65px, 0);
    transform: translate3d(0, -65px, 0);
  }
}


/*---------------------------------------------
	[BX] ボックス
  ---------------------------------------------*/
.mod .box {
  margin-bottom: 30px;
  padding: 30px 30px 10px;
  background-color: #f7f4f0;
  overflow: hidden;
}
.mod .box.wide {
  padding: 45px 60px 35px;
}

.mod .box > .heading:first-child {
  margin: -30px -30px 30px;
  padding: 12px 30px;
  color: #fff;
  line-height: 1.6;
  text-align: center;
  background-color: #c1b4a0;
}
.mod .gutter10 .box {
  margin-bottom: 10px;
}
.mod dl .box p:last-child {
  margin-bottom: inherit;
}


/*---------------------------------------------
	[PL] パネル
  ---------------------------------------------*/
html:not(.sp) .mod [class^="panel-"] a:hover,
html:not(.sp) .mod [class*=" panel-"] a:hover {
  text-decoration: none !important;
}


/* ----- [PL1] パネル > 画像上 ----- */
.mod .panel-vertical {
  position: relative;
  margin-bottom: 60px;
  background-color: #fff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
.mod .panel-vertical.empty {
  width: 100% !important;
  margin: 0;
  text-align: center;
  box-shadow: none;
  background-color: transparent !important;
}
.mod .panel-vertical.empty p {
  font-size: 1rem;
}
.mod .panel-vertical > a {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
}
.mod .panel-vertical > a:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
.mod .panel-vertical .img > a {
  display: block;
}
.mod .panel-vertical .img {
  position: relative;
  margin: 0;
  overflow: hidden;
}
.mod .panel-vertical .img img {
  width: 100%;
}
.mod .panel-vertical .txt {
  position: relative;
  margin-bottom: auto;
  padding: 20px 30px 10px;
}
.mod .panel-vertical p {
  font-size: 0.94rem;
  -webkit-transition: color .2s linear;
  transition: color .2s linear;
}
.mod .panel-vertical p:not(.link-icon) {
  color: #555;
}
.mod .panel-vertical .date {
  color: #999;
}
.mod .panel-vertical .heading {
  margin-bottom: 15px;
}
.mod .panel-vertical a > .heading {
  color: #000;
  margin-bottom: 0;
  padding: 20px 30px 5px;
  font-size: 1.13rem;
  font-weight: bold;
  line-height: 1.6;
}
.mod .panel-vertical a > .heading + .txt {
  padding-top: 10px;
}
.mod .panel-vertical .note {
  margin: 0 30px;
  padding: 15px 0 15px 0;
  font-size: 0.88rem;
  border-top: solid 1px #dcdcdc;
  clear: both;
}
.mod .panel-vertical .note:before {
  content: none;
}

.mod .panel-vertical .txt + .tag {
  position: relative;
  margin: 0;
  padding: 15px 10px 5px 20px;
  line-height: 1;
  border-top: solid 1px #fff;
  background-color: inherit;
}
.mod .panel-vertical.txt-white .tag {
  border-top: solid 1px rgba(255, 255, 255, 0.2);
}

.mod .img-square .panel-vertical .txt .heading {
  margin-bottom: 0;
  padding-bottom: 15px;
  flex: 1 0 auto;
}

.mod .txt-white .panel-vertical {
  background-color: #fff;
}
.mod .txt-white .panel-vertical .txt *,
.mod .txt-white .panel-vertical .txt .heading {
  color: initial !important;
}

.mod .panel-vertical li.link-icon {
  margin-bottom: 0;
}

/* ----- [PL2] パネル > 画像左右 ----- */
.mod .panel-horizontal {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  background-color: #fff;
  overflow: hidden;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
.mod .panel-horizontal > a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  text-decoration: none;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.mod .panel-horizontal:before,
.mod .panel-horizontal > a:before {
  content: "";
  display: block;
}
.mod .panel-horizontal:not(.txt-white) p:not(.link-icon) {
  color: #555;
}
.mod .panel-horizontal .img {
  position: relative;
  z-index: 1;
  width: 50%;
  height: 100%;
  margin: 0;
  overflow: hidden;
}
.mod .panel-horizontal .img.right {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

.mod .panel-horizontal .img > a {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
.mod .panel-horizontal .txt {
  position: relative;
  z-index: 1;
  width: 50%;
  margin: 0;
  padding: 30px 50px 10px;
}
.mod .panel-horizontal .col3-4 {
  width: 75%;
}
.mod .panel-horizontal .col2-3 {
  width: 66.66666666%;
}
.mod .panel-horizontal .col1-2 {
  width: 50%;
}
.mod .panel-horizontal .col1-3 {
  width: 33.33333333%;
}
.mod .panel-horizontal .col1-4 {
  width: 25%;
}
.mod .panel-horizontal h2:not([class*="heading"]),
.mod .panel-horizontal .heading1 {
  font-size: 1.5rem;
}
.mod .panel-horizontal .txt .heading {
  margin-bottom: 20px;
  font-size: 1.75rem;
}
.mod .panel-horizontal .date,
.mod .panel-horizontal .tag {
  font-size: 0.94rem;
}

.mod .row .panel-horizontal {
  margin-bottom: 60px;
}

/* ----- [PL4] パネル > 背景画像 ----- */
.mod .panel-covered {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  overflow: hidden;
}
.mod .panel-covered > a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  text-decoration: none;
  -ms-flex-item-align: stretch;
      align-self: stretch;
}

.mod .panel-covered > a:before {
  content: "";
  display: block;
  padding-top: 75%;
}
.mod .img-square .panel-covered > a:before {
  padding-top: 100%;
}
.mod .panel-covered .img {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  margin: 0;
  overflow: hidden;
}

.mod .panel-covered .txt {
  width: 100%;
  padding: 30px 30px 15px 30px;
}
.mod .panel-covered .txt.bottom {
  position: relative;
  z-index: 2;
}
.mod .panel-covered .row.txt {
  padding-left: 4.25vw;
  padding-right: 4.25vw;
}
.mod .panel-covered .txt:not(.bottom):before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
}
.mod .panel-covered .txt > * {
  position: relative;
}
.mod .panel-covered p {
  margin-bottom: 15px;
  font-size: 0.75rem;
  line-height: 1.6;
}
.mod .panel-covered h2:not([class*="heading"]),
.mod .panel-covered .heading1 {
  font-size: 1.5rem;
}
.mod .panel-covered .heading {
  margin-bottom: 15px;
  padding: 0;
  font-size: 1rem;
  line-height: 1.6;
}
.mod .panel-covered * {
  color: #fff !important;
}
.mod .panel-covered h2:not([class*="heading"]):after,
.mod .panel-covered h3:not([class*="heading"]):after,
.mod .panel-covered h4:not([class*="heading"]):after,
.mod .panel-covered .heading1:after,
.mod .panel-covered .heading2:after,
.mod .panel-covered .heading3:after,
.mod .panel-covered ul li:before {
  background-color: #fff;
}
.mod .panel-covered h3:not([class*="heading"]) {
  border-bottom-color: rgba(255, 255, 255, 0.2);
}
.mod .panel-covered .link-icon a:after,
.mod .panel-covered a .link-icon:after {
  background-position-y: -144px !important;
}
.mod .panel-covered .btn .ghost:not(:hover) {
  border: solid 1px rgba(255, 255, 255, 0.5);
}
.mod .panel-covered .btn .ghost span:after {
  background-position-y: -144px !important;
}
html:not(.sp) .mod .panel-covered .btn .ghost:hover {
  background-color: #fff !important;
  border: solid 1px #fff !important;
}
html:not(.sp) .mod .panel-covered .btn .ghost:hover span {
  color: #434c4d !important;
}
html:not(.sp) .mod .panel-covered .btn .ghost:hover span:after {
  background-position-y: -120px !important;
}

.mod .col-set:not(.no-gutter) .panel-covered {
  margin-bottom: 60px;
}
.mod .col-set.gutter10 .panel-covered {
  margin-bottom: 10px;
}

.mod .panel-vertical .img .bg-img,
.mod .panel-horizontal .img .bg-img {
  padding-top: 75%;
}
.mod .img-square .panel-vertical .img .bg-img,
.mod .img-square .panel-horizontal .img .bg-img {
  padding-top: 100%;
}
.mod .img-half .panel-vertical .img .bg-img,
.mod .img-half .panel-horizontal .img .bg-img {
  padding-top: 50%;
}


/* ----- [PL] パネル - 共通設定 ----- */
.mod .panel-vertical > a:before,
.mod .panel-horizontal > a:after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  opacity: 0;
  -webkit-transition: opacity .2s linear;
  transition: opacity .2s linear;
}

.mod .panel-vertical.txt-white > a:before,
.mod .panel-horizontal.txt-white > a:after {
  background-color: #fff;
}

html:not(.sp) .mod .panel-vertical.txt-white > a:hover:before,
html:not(.sp) .mod .panel-horizontal.txt-white > a:hover:after {
  opacity: .2;
}

.mod .panel-horizontal .img .bg-img,
.mod .panel-covered .img .bg-img {
  width: 100%;
  height: 100%;
}

.mod .panel-horizontal .txt.middle,
.mod .panel-covered .txt.middle {
  -ms-flex-item-align: center !important;
      align-self: center !important;
}
.mod .panel-horizontal .txt.bottom,
.mod .panel-covered .txt.bottom {
  -ms-flex-item-align: end !important;
      align-self: flex-end !important;
}
.mod .panel-covered .txt.bottom {
  margin-top: -20px;
  padding-top: 50px;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.4) 50px);
}

.mod .panel-vertical .txt .date + *,
.mod .panel-vertical .txt .heading + *,
.mod .panel-horizontal .txt .date + *,
.mod .panel-horizontal .txt .heading + *,
.mod .panel-covered .txt .date + *,
.mod .panel-covered .txt .heading + * {
  margin-top: -12px;
}
.mod .panel-vertical .txt .heading + .tag {
  margin-top: -5px;
}
.mod .panel-covered .txt .heading + .tag {
  margin-top: -5px;
}
.mod .panel-covered .txt .heading + p {
  margin-top: -5px;
}

.mod .panel-vertical .txt .btn,
.mod .panel-vertical .txt .link-icon,
.mod .panel-horizontal .txt .btn,
.mod .panel-horizontal .txt .link-icon,
.mod .panel-covered .txt .btn,
.mod .panel-covered .txt .link-icon {
  margin-top: 0;
}

.mod .panel-vertical p,
.mod .panel-horizontal p,
.mod .panel-covered p {
  line-height: 1.6;
}
.mod .panel-vertical .txt .heading,
.mod .panel-horizontal .txt .heading,
.mod .panel-covered .txt .heading {
  padding: 0;
  color: #000;
  line-height: 1.6;
  clear: both;
}

.mod .panel-vertical .label,
.mod .panel-horizontal .label,
.mod .panel-covered .label {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  margin-bottom: 0;
}
.mod .panel-vertical .label span,
.mod .panel-horizontal .label span,
.mod .panel-covered .label span {
  float: left;
  display: block;
  min-width: 116px;
  font-size: 0.75rem;
}
.mod .panel-vertical .txt .label,
.mod .panel-horizontal .txt .label {
  position: static;
  float: right;
}
.mod .panel-covered .txt .label {
  position: static;
}
.mod .panel-covered .txt .label.right {
  float: right;
}
.mod .panel-vertical .txt .label.left,
.mod .panel-horizontal .txt .label.left {
  float: left;
}
.mod .panel-vertical .txt .label.left + *,
.mod .panel-horizontal .txt .label.left + * {
  clear: both;
}
.mod .panel-vertical .txt .label,
.mod .panel-covered .txt .label {
  margin-top: -2px;
}
.mod .panel-vertical .txt .label span,
.mod .panel-horizontal .txt .label span,
.mod .panel-covered .txt .label.right span {
  margin-left: auto;
}
.mod .panel-vertical .label span.new,
.mod .panel-horizontal .label span.new,
.mod .panel-covered .label span.new {  /* add 20201207 */
  min-width: 70px;
  background-color: #bc011d;;
}

.mod .panel-vertical .tag,
.mod .panel-covered .tag {
  font-size: 0.75rem;
}
.mod .panel-covered .tag {
  margin-top: -10px;
  margin-right: 0;
}
.mod .panel-vertical .tag a,
.mod .panel-horizontal .tag a {
  font-size: 0.75rem;
  padding: 4px 10px;
}

.mod .panel-vertical .date,
.mod .panel-covered .date {
  margin: 2px 0 20px;
  font-size: 0.81rem;
}


.mod .panel-link {
  position: relative;
  margin-bottom: 60px;
  background-color: #fff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
.mod .panel-link > * {
  display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
  -webkit-flex-direction: column;
	-ms-flex-direction: column;
	flex-direction: column;
  padding: 45px 20px 40px;
}
.mod .panel-link a {
  text-decoration: none;
}
.mod .panel-link a .img::after {
  display: none;
}
.mod .panel-link .heading {
  font-size: 1.35rem;
  text-align: center;
  line-height: 1.35;
}
.mod .panel-link .heading span {
  margin-top: -10px;
  font-size: 1rem;

}



/*---------------------------------------------
	[TB] 表
  ---------------------------------------------*/
.mod table {
  width: 100%;
  margin-bottom: 20px;
  border-spacing: 0;
}
.mod table td {
  padding: 30px;
  border: solid 1px #ddd;
}
.mod table th {
  padding: 30px;
  color: #000;
  font-weight: bold;
  background-color: #eee9e5;
  border: solid 1px #ddd;
}
.mod table thead th {
  color: #000;
  border: solid 1px #ddd;
}
.mod table thead + tbody th {
  background-color: #f7f4f0;
}
.mod table td p:last-child,
.mod table td ul:last-child,
.mod table td ol:last-child,
.mod table td dl:last-child {
  margin-bottom: 0;
}

.mod table.sp-vertical {
  border: none;
  border-bottom: 1px solid #ddd;
}

.mod table.sp-vertical th,
.mod table.sp-vertical td {
  border: none;
  border-top: 1px solid #ddd;
}

.mod table.table-thin th,
.mod table.table-thin td {
  padding: 13px 30px;
}

.mod table th {
  font-weight: normal;
}
.mod table.table-th-vertical th {
  margin: 0;
  padding: 30px 20px;
  vertical-align: top;
}
.mod table.table-th-vertical th span {
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  white-space: nowrap;
  margin: 0;
  padding: 0;
  line-height: 1em;
}

.mod table.table-th-vertical td {
  width: calc((100% - 60px) / 2);
  width: 50%;
  vertical-align: top;
}
/* for ff */
@-moz-document url-prefix() {
  .mod table.table-th-vertical th {
    padding: 30px;
  }
	.mod table.table-th-vertical th span {
    transform: translateX(-10px);
  }
}
/* for Safari */
_:lang(x)+_:-webkit-full-screen-document, .mod table.table-th-vertical th {
  padding: 30px;
}
_:lang(x)+_:-webkit-full-screen-document, .mod table.table-th-vertical th span {
  transform: translateX(-10px);

}

/*---------------------------------------------
	[NV1] コンテンツナビゲーション
  ---------------------------------------------*/
.mod .nav-content {
  margin-bottom: 20px;
}
.mod .nav-content ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  overflow: hidden;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.mod .nav-content li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 2000px;
  min-height: 60px;
  margin: 0;
  padding: 0;
  text-align: center;
  line-height: 1.6;
  overflow: hidden;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.mod .nav-content li:before {
  display: none;
}
.mod .nav-content a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  padding: 10px 15px;
  text-decoration: none;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: background-color .2s linear, border-color .2s linear;
  transition: background-color .2s linear, border-color .2s linear;
}

.mod .nav-content.link-internal a {
  color: #000;
  border-bottom: 1px solid #dcdcdc !important;
}
html:not(.sp) .mod .nav-content.link-internal a:hover {
  color: inherit;
  text-decoration: none;
  background-color: transparent;
  border-bottom-color: #000 !important;
}
.mod .nav-content.link-internal a:after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin: 0 0 8px 20px;
  vertical-align: middle;
  border-bottom: 1px solid #000;
  border-right: 1px solid #000;
  background-image: none;
  transform: rotate(45deg);
  transition: transform .2s linear;
}
html:not(.sp) .mod .nav-content.link-internal a:hover:after {
  transform: translate3d(0, 3px, 0) rotate(45deg);
}

@media screen and (min-width: 768px) {
  .mod .row .nav-content ul,
  .mod .nav-content ul:not(.row) {
    border-left: 0 none !important;
  }
  .mod .row .nav-content ul li:last-of-type a,
  .mod .nav-content ul:not(.row) li:last-of-type a {
    margin-right: -1px;
    border-right: 0 none;
  }
}
/*---------------------------------------------
	[NV2] タブ
  ---------------------------------------------*/
.mod .tab {
  margin-bottom: 50px;
}
.mod .tab.bg-white {
  background-color: transparent !important;
}

.mod .row .tab {
  margin-bottom: 20px;
}

.mod .tab-nav {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0 auto;
  padding-top: 10px;
  overflow: hidden;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}


.mod .tab-nav li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  min-height: 70px;
  margin: 0;
  padding: 0;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.mod .tab-nav li:last-of-type {
  margin-right: -1px;
  border-right: 0 none;
}
.mod .tab-nav li:before {
  display: none;
}
.mod .tab-nav li a {
  display: flex;
  width: 100%;
  padding: 5px 10px;
  font-size: 0.94rem;
  text-align: center;
  line-height: 1.5;
  flex-direction: column;
  text-decoration: none;
  justify-content: center;
  align-items: center;
  transition: background-color .2s linear, border-right-color .2s linear, margin .2s ease-in-out, padding .2s ease-in-out;
}
.mod .tab-nav li a span {
  font-size: 0.69rem;
}

.mod .tab-nav li.current a {
  margin-top: -10px;
  padding-bottom: 15px;
}
.mod .tab-nav li.current a.white,
.mod .tab.bg-white .tab-nav li.current a {
  background-color: #fff !important;
  border-right-color: #fff !important;
}
.mod .tab-nav li.current a.bg-gray {
  background-color: #eee9e5 !important;
  border-right-color: #eee9e5 !important;
}
.mod .tab-nav li.current a.bg-light {
  background-color: #f7f4f0 !important;
  border-right-color: #f7f4f0 !important;
}
.mod .tab-nav li.blank a {
  color: rgba(255, 255, 255, .3);
  pointer-events: none;
}

.mod .tab-nav li a {
  color: #fff;
  background-color: #000;
  border-right: solid 1px #585858;
  cursor: pointer;
}
.mod .tab-nav li.current a {
  color: #000 !important;
  background-color: #fff !important;
  border-right-color: #fff !important;
}
html:not(.sp) .mod .tab-nav li a:hover {
  color: #fff;
  background-color: #333;
  border-right-color: #333;
  text-decoration: none;
}

.mod .tab-content {
  background-color: #fff;
  /*overflow: hidden; change202109 */
}

.mod .row .tab-content {
  padding: 0;
}

.mod .tab-container {
  overflow: hidden;
}

.mod .tab-slider {
  position: relative;
  width: 1000%;
}

.mod .tab-element {
  float: left;
  display: none;
  padding: 30px 0 10px;
}

.mod .tab-slider .tab-element {
  width: 10%;
}

.mod .tab-element:first-of-type {
  display: block;
}

.mod .row .tab .tab-element {
  padding-left: 60px;
  padding-right: 60px;
}
.mod .tab.bg-white .tab-element  {
  background-color: #fff;
}
.mod .sub .tab-nav li a {
  background-color: #c1b4a0;
  border-right-color: #d4cbbd;
}
.mod .sub .tab-nav li.current a {
  background-color: #eee9e5 !important;
  border-right-color: #eee9e5 !important;
}
.mod .sub .tab-nav li.current a.bg-white {
  background-color: #fff !important;
  border-right-color: #fff !important;
}
html:not(.sp) .mod .sub .tab-nav li a:hover {
  background-color: #d4c7b4;
  border-right-color: #d4cbbd;
}
.mod .sub .tab-content {
  background-color: #eee9e5;
}
.mod .sub .tab-element {
  padding: 30px 50px;
}

mod .fade .tab-content {
  position: relative;
  /*overflow: hidden; change202109 */
}

.mod .fade .tab-element {
  position: absolute;
  float: none;
  display: none;
  left: 0;
  top: 0;
  width: 100%;
  height: 0;
  opacity: 0;
  z-index: -1;
}
.mod .fade .tab-element.is-show {
  position: relative;
  display: block;
  height: auto;
  opacity: 1;
  z-index: 5;
}


/* ----- ページタイトルタブナビ ----- */

.mod .tab.float-heading {
  margin-top: 0 !important;
}
.mod .tab.float-heading > .row > .tab-nav {
  position: absolute;
  width: calc(100% - 8.5vw);
  bottom: -100%;
}
/* コンテンツの間にある場合　*/
.mod .tab.float-heading.in-between {
  margin-top: 120px !important;
}

/* タブの中のタブ */
.mod .result-tab {
  margin-bottom: 0 !important;
  padding-bottom: 50px;
}
.mod .result-tab > .content {
  padding-top: 0;
  padding-bottom: 0;
}
.mod .result-tab .tab-nav li.current a {
  background-color: #eee9e6 !important;
}
.mod .result-tab .result-content > .tab-content {
  padding-top: 50px;
  background: #eee9e6;
}
.mod .result-tab .result-area {
  padding-top: 0;
  padding-bottom: 0;
}
.mod .result-tab .sub.float-heading {
  margin-top: 100px !important;
  margin-bottom: 0;
}
.mod .sub.float-heading.case {
  margin-top: 80px !important;
  margin-bottom: 0;
}
.mod .result-tab .sub.float-heading .tab-nav li.current a,
.mod .sub.float-heading.case .tab-nav li.current a {
  background-color: #fff !important;
}
.mod .result-tab .sub.float-heading .content {
  padding-bottom: 20px;
}
.mod .result-tab .sub.float-heading .tab-content,
.mod .tab.sub.float-heading.case .tab-content {
  /* padding-bottom: 30px; */
  background-color: #fff;
}
.mod .result-tab .sub.float-heading .tab-element,
.mod .sub.float-heading.case .tab-element {
  padding: 0 !important;
}

/* ----- タブ カラーバリエーション（bg-gray） add202109 ----- */
.mod .tab.color-gray .tab-nav li.current a {
  background-color: #eee9e5 !important;
  border-right-color: #eee9e5 !important;  
}
.mod .tab.color-gray .content,
.mod .tab.color-gray .tab-content {
  background-color: #eee9e5 !important;
}

/*---------------------------------------------
	[FM] フォーム
  ---------------------------------------------*/
.mod .form input,
.mod .form select,
.mod .form textarea,
.mod .form span {
  -webkit-transition-duration: .2s;
          transition-duration: .2s;
  -webkit-transition-timing-function: ease-out;
          transition-timing-function: ease-out;
}
.mod input:focus,
.mod select:focus,
.mod textarea:focus {
  outline: none;
}
.mod input[type="tel"],
.mod input[type="email"],
.mod input[type="text"],
.mod textarea {
  width: 100%;
  /*max-width: 300px;*/
  margin: 5px 0;
  padding: 5px;
  font-size: 16px;
  line-height: 1.6;
  border: 1px solid #e5e5e5;
  vertical-align: middle;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.mod .form input[type="tel"].full,
.mod .form input[type="email"].full,
.mod .form input[type="text"].full,
.mod .form textarea.full {
  max-width: 100%;
}
.mod .form input[type="tel"]:not(.full),
.mod .form input[type="email"]:not(.full),
.mod .form input[type="text"]:not(.full) {
  margin-right: 15px;
}
.mod .form select {
  position: relative;
  margin: 5px 0;
  padding: 5px 40px 5px 5px;
  font-size: 16px;
  line-height: 1.6;
  border: 1px solid #e5e9e9;
  vertical-align: middle;
  cursor: pointer;
  background-color: #fff;
  background-image: url(../images/btn_select.gif);
  background-repeat: no-repeat;
  background-position: right center;
  background-size: 30px 45px;
  border-radius: 3px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
html:not(.sp) .mod .form input[type="tel"]:hover,
html:not(.sp) .mod .form input[type="email"]:hover,
html:not(.sp) .mod .form input[type="text"]:hover,
html:not(.sp) .mod .form textarea:hover,
html:not(.sp) .mod .form select:hover {
  border: 1px solid #e50124;
}
.mod .form select::-ms-expand {
  display: none;
}
.mod .form label {
  display: inline-block;
  margin: 5px 20px 5px 0;
  cursor: pointer;
}
.mod .form input[type="radio"] {
  display: none;
}
.mod .form input[type="radio"] + span {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 18px;
  margin: 5px 6px 5px 0;
  vertical-align: middle;
  background-color: #fff;
  border: 2px solid #e5e9e9;
  border-radius: 9px;
}
.mod .form input[type="radio"]:checked + span {
  border-color: #59bdc6;
}
.mod .form input[type="radio"]:checked + span:after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  margin: 2px;
  background-color: #59bdc6;
  border-radius: 5px;
}
.mod .form input[type="checkbox"] {
  display: none;
}
.mod .form input[type="checkbox"] + span {
  position: relative;
  display: inline-block;
  width: 16px;
  height: 16px;
  margin: 5px 6px 5px 0;
  vertical-align: middle;
  border: 2px solid #dcdcdc;
  background-color: #fff;
}
.mod .form input[type="checkbox"]:checked + span {
  border-color: #000;
  background: #000;
}
.mod .form input[type="checkbox"]:checked + span:before {
  content: "";
  position: absolute;
  top: 1px;
  left: 1px;
  width: 10px;
  height: 6px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.mod .form .checkbox .heading,
.mod .form .checkbox-jsoff .heading {
  display: inline-block;
  margin-right: 50px;
  vertical-align: middle;
}

.mod :-moz-placeholder {
  color: #bbb;
  opacity: 1;
}

.mod ::-webkit-input-placeholder {
  color: #bbb;
  opacity: 1;
}

.mod :-ms-input-placeholder {
  color: #bbb;
}

.mod :placeholder-shown {
  color: #bbb;
}

/*---------------------------------------------
	[EB1] 動画埋め込み
  ---------------------------------------------*/
.mod .embed-video {
  position: relative;
  margin-bottom: 20px;
  padding: 56.25% 0 0;
}
.mod .embed-video iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  border: 0 none;
}

/*---------------------------------------------
	[EB2] モーダル
  ---------------------------------------------*/
/* Magnific Popup CSS */
.mfp-bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10042;
  overflow: hidden;
  background: #000;
  opacity: .8;
  -webkit-animation: mfp-bg-fadein .3s linear;
          animation: mfp-bg-fadein .3s linear;
}
.mfp-bg.mfp-ready.mfp-removing {
  opacity: 0;
  -webkit-transition: opacity .3s linear .3s;
  transition: opacity .3s linear .3s;
}

@-webkit-keyframes mfp-bg-fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: .8;
  }
}

@keyframes mfp-bg-fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: .8;
  }
}
.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10043;
  position: fixed;
  outline: none !important;
}
html:not(.sp) .mfp-wrap {
  overflow-y: scroll !important;
}

.mfp-container {
  position: absolute;
  width: 100%;
  max-width: none;
  height: 100%;
  left: 0;
  top: 0;
  text-align: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.mfp-container:before {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.mfp-align-top .mfp-container:before {
  display: none;
}

.mfp-content {
  position: relative;
  z-index: 10045;
  display: inline-block;
  vertical-align: middle;
  margin: 20px auto;
  text-align: left;
  opacity: 0;
  -webkit-backface-visibility: hidden;
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
}
.mfp-wrap.mfp-ready .mfp-content {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition: opacity .3s linear, -webkit-transform .3s ease-out;
  transition: opacity .3s linear, -webkit-transform .3s ease-out;
  transition: transform .3s ease-out, opacity .3s linear;
  transition: transform .3s ease-out, opacity .3s linear, -webkit-transform .3s ease-out;
}
.mfp-wrap.mfp-ready.mfp-removing .mfp-content {
  opacity: 0;
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
  -webkit-transition: opacity .3s linear .3s, -webkit-transform .3s ease-in .3s;
  transition: opacity .3s linear .3s, -webkit-transform .3s ease-in .3s;
  transition: transform .3s ease-in .3s, opacity .3s linear .3s;
  transition: transform .3s ease-in .3s, opacity .3s linear .3s, -webkit-transform .3s ease-in .3s;
}
.mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content {
  width: 100%;
  padding: 40px 0;
  cursor: auto;
}
.mfp-inline-holder .mfp-content > div {
  position: relative;
  margin: 0 auto;
  -webkit-box-shadow: 0 0 50px rgba(0, 0, 0, 0.6);
          box-shadow: 0 0 50px rgba(0, 0, 0, 0.6);
}
.mfp-inline-holder .mfp-content .content {
  padding: 30px 30px 10px;
  position: relative;
  color: #fff;
}

.mfp-ajax-cur {
  cursor: progress;
}

.mfp-zoom {
  cursor: pointer;
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
}
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: -webkit-zoom-out;
  cursor: zoom-out;
}

.mfp-auto-cursor .mfp-content {
  cursor: auto;
}

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.mfp-loading.mfp-figure {
  display: none;
}

.mfp-hide {
  display: none !important;
}

.mfp-preloader {
  position: absolute;
  top: 50%;
  width: 100%;
  height: 60px;
  margin-top: -30px;
  text-indent: -9999px;
  z-index: 10044;
  overflow: hidden;
}
.mfp-preloader:before {
  content: "";
  display: block;
  width: 60px;
  height: 60px;
  margin: 0 auto;
  background-image: url(../images/preloader.gif);
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 60px 60px;
}
.mfp-s-ready .mfp-preloader {
  display: none;
}

.mfp-s-error .mfp-content {
  display: none;
}

.mfp-close {
  position: absolute;
  width: 30px;
  height: 30px;
  right: 0;
  top: 40px;
  text-indent: -9999px;
  cursor: pointer;
  overflow: hidden;
  border: none;
  background: none;
  outline: none;
  opacity: .5;
}
.mfp-ready .mfp-close {
  top: 0;
  -webkit-transition: top 0.3s cubic-bezier(0.47, 1.83, 0.71, 1) 0.3s, opacity 0.3s linear, -webkit-transform 0.3s ease-in-out;
  transition: top 0.3s cubic-bezier(0.47, 1.83, 0.71, 1) 0.3s, opacity 0.3s linear, -webkit-transform 0.3s ease-in-out;
  transition: top 0.3s cubic-bezier(0.47, 1.83, 0.71, 1) 0.3s, transform 0.3s ease-in-out, opacity 0.3s linear;
  transition: top 0.3s cubic-bezier(0.47, 1.83, 0.71, 1) 0.3s, transform 0.3s ease-in-out, opacity 0.3s linear, -webkit-transform 0.3s ease-in-out;
}
.mfp-ready.mfp-removing .mfp-close {
  top: 40px;
  -webkit-transition: top .3s ease-in 0s;
  transition: top .3s ease-in 0s;
}
.mfp-ready .mfp-iframe-holder .mfp-close,
.mfp-ready .mfp-inline-holder .mfp-close {
  top: -40px;
}
.mfp-ready.mfp-removing .mfp-iframe-holder .mfp-close,
.mfp-ready.mfp-removing .mfp-inline-holder .mfp-close {
  top: 0;
}
html:not(.sp) .mfp-close:hover {
  opacity: 1;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.mfp-close:before,
.mfp-close:after {
  content: "";
  position: absolute;
  display: block;
  width: 2px;
  height: 36px;
  right: 14px;
  top: -4px;
  background-color: #eee9e5;
  border-radius: 2px;
}
.mfp-close:before {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.mfp-close:after {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
html:not(.sp) .mfp-close:hover {
  opacity: 1;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}

.mfp-counter {
  position: absolute;
  top: -40px;
  left: 0;
  color: #ccc;
  font-size: .96rem;
  line-height: 1.6;
  white-space: nowrap;
}

.mfp-arrow {
  position: absolute;
  z-index: 10046;
  width: 48px;
  height: 48px;
  top: 50%;
  margin-top: -20px;
  text-indent: -9999px;
  background-color: #fff;
  border: 0 none;
  overflow: hidden;
  cursor: pointer;
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 50%;
}
.mfp-arrow:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #fff;
  opacity: 0;
  -webkit-transition: opacity .2s linear;
  transition: opacity .2s linear;
}
html:not(.sp) .mfp-arrow:hover:before {
  opacity: .2;
}
.mfp-arrow:after {
  width: 24px;
  height: 24px;
  background-image: url(../images/icon_link.png);
  background-repeat: no-repeat;
  background-size: 480px 240px;
  content: "";
  position: absolute;
  display: block;
  top: 50%;
  margin-top: -12px;
  background-position-x: 0;
  background-position-y: -120px;
  -webkit-transition: -webkit-transform .2s linear;
  transition: -webkit-transform .2s linear;
  transition: transform .2s linear;
  transition: transform .2s linear, -webkit-transform .2s linear;
}
.mfp-arrow-left {
  left: -100px;
}
.mfp-arrow-right {
  right: -100px;
}
.mfp-arrow-left:after {
  left: 11px;
  transform: scaleX(-1);
}
html:not(.sp) .mfp-arrow-left:hover:after {
  -webkit-transform: translate3d(-3px, 0, 0) scaleX(-1);
          transform: translate3d(-3px, 0, 0) scaleX(-1);
}
.mfp-arrow-right:after {
  right: 11px;
}
html:not(.sp) .mfp-arrow-right:hover:after {
  -webkit-transform: translate3d(3px, 0, 0);
          transform: translate3d(3px, 0, 0);
}
.mfp-ready .mfp-arrow-left {
  left: 20px;
  -webkit-transition: left 0.3s cubic-bezier(0.47, 1.83, 0.71, 1) 0.3s;
  transition: left 0.3s cubic-bezier(0.47, 1.83, 0.71, 1) 0.3s;
}
.mfp-ready.mfp-removing .mfp-arrow-left {
  left: -100px;
  -webkit-transition: left .5s ease-in 0s;
  transition: left .5s ease-in 0s;
}
.mfp-ready .mfp-arrow-right {
  right: 20px;
  -webkit-transition: right 0.3s cubic-bezier(0.47, 1.83, 0.71, 1) 0.3s;
  transition: right 0.3s cubic-bezier(0.47, 1.83, 0.71, 1) 0.3s;
}
.mfp-ready.mfp-removing .mfp-arrow-right {
  right: -100px;
  -webkit-transition: right .5s ease-in 0s;
  transition: right .5s ease-in 0s;
}

.mfp-iframe-holder .mfp-content {
  line-height: 0;
  width: 90%;
  max-width: 1230px;
  padding-top: 40px;
  padding-bottom: 40px;
}
.mfp-iframe-scaler {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
}
.mfp-iframe-scaler iframe {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.6);
          box-shadow: 0 0 30px rgba(0, 0, 0, 0.6);
  background: #000;
}

/* Main image in popup */
img.mfp-img {
  position: relative;
  z-index: 1;
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  line-height: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* The shadow behind the image */
.mfp-figure {
  line-height: 0;
  padding: 40px 0;
}
.mfp-figure:after {
  content: '';
  position: absolute;
  z-index: -1;
  display: block;
  width: auto;
  height: auto;
  left: 0;
  top: 40px;
  bottom: 40px;
  right: 0;
  background: #444;
  -webkit-box-shadow: 0 0 50px rgba(0, 0, 0, 0.6);
          box-shadow: 0 0 50px rgba(0, 0, 0, 0.6);
}
.mfp-figure small {
  color: #BDBDBD;
  display: block;
  font-size: 0.75rem;
  line-height: 1.6;
}
.mfp-figure figure {
  position: relative;
  z-index: 1;
  margin: 0;
}

.mfp-bottom-bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  cursor: auto;
}

.mfp-title {
  position: relative;
  top: 100%;
  padding: 15px 0 30px;
  font-size: 0.94rem;
  text-align: left;
  line-height: 1.8;
  color: #fff;
}

.mfp-image-holder .mfp-content {
  max-width: 100%;
}
@media all and (-ms-high-contrast:none) {
  .mfp-image-holder .mfp-content {
    max-width: 90%;  /* IE10 */
  }
}

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer;
}

.sb10 .mfp-bg ~ #wrapper header,
.sb10 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 10px);}
.sb11 .mfp-bg ~ #wrapper header,
.sb11 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 11px);}
.sb12 .mfp-bg ~ #wrapper header,
.sb12 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 12px);}
.sb13 .mfp-bg ~ #wrapper header,
.sb13 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 13px);}
.sb14 .mfp-bg ~ #wrapper header,
.sb14 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 14px);}
.sb15 .mfp-bg ~ #wrapper header,
.sb15 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 15px);}
.sb16 .mfp-bg ~ #wrapper header,
.sb16 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 16px);}
.sb17 .mfp-bg ~ #wrapper header,
.sb17 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 17px);}
.sb18 .mfp-bg ~ #wrapper header,
.sb18 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 18px);}
.sb19 .mfp-bg ~ #wrapper header,
.sb19 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 19px);}
.sb20 .mfp-bg ~ #wrapper header,
.sb20 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 20px);}
.sb21 .mfp-bg ~ #wrapper header,
.sb21 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 21px);}
.sb22 .mfp-bg ~ #wrapper header,
.sb22 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 22px);}
.sb23 .mfp-bg ~ #wrapper header,
.sb23 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 23px);}
.sb24 .mfp-bg ~ #wrapper header,
.sb24 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 24px);}
.sb25 .mfp-bg ~ #wrapper header,
.sb25 .mfp-bg ~ #wrapper .fixed {width: calc(100% - 25px);}

/*---------------------------------------------
	[SL] スライダー
  ---------------------------------------------*/
.mod .slider {
  position: relative;
/*
  margin-bottom: 30px;
  padding-bottom: 30px;
*/
}
.mod .slider-container {
  width: 100%;
  overflow: hidden;
}
.mod .slider .panel-vertical,
.mod .slider .panel-covered {
  margin-bottom: 0;
}
.mod .slider .panel-covered:before {
  padding-top: 0;
}
.mod .slider .panel-covered .txt {
  transform: translate3d(0, 0, 0);
}

.mod .slider.banners .col1-3 {
  padding: 0 0 30px 0;
}
.mod .slider.banners ul.col-set li {
  margin-bottom: 0;
}

.mod .slider.banners li.slick-active a {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}

/* ----- Slick Slider ----- */
.slick-slider {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}
.mod .col-set.slick-initialized {
  margin-bottom: 60px;
}
.mod .col-set.gutter10.slick-initialized {
  margin-bottom: 30px;
}

.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

.slick-track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  top: 0;
  left: 0;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.slick-track:before, .slick-track:after {
  display: table;
  content: '';
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  display: none;
  min-height: 1px;
  margin-bottom: 0;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}
.slider-btns {
  display: none;
}
.slick-initialized + .slider-btns {
  display: block;
}
.slick-arrow.slick-hidden {
  display: none;
}
.slick-arrow {
  position: absolute;
  z-index: 2;
  width: 48px;
  height: 48px;
  bottom: 30px;
  margin: -24px;
  text-indent: -9999px;
  background-color: #fff;
  border: 0 none;
  overflow: hidden;
  cursor: pointer;
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  transition: background-color .2s linear;
}
html:not(.sp) .slick-arrow:hover {
  background-color: #000;
}
.slick-arrow:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 0;
}
.slick-arrow:after {
  width: 24px;
  height: 24px;
  background-image: url(../images/icon_link.png);
  background-repeat: no-repeat;
  background-size: 480px 240px;
  content: "";
  position: absolute;
  display: block;
  top: 50%;
  margin-top: -12px;
  background-position-x: 0;
  background-position-y: -120px;
  transition: transform .2s linear;
}
html:not(.sp) .slick-arrow:hover:after {
  background-position-y: -144px;
}

.slick-prev {
  left: calc(50% - 68px);
}
.slick-prev:after {
  left: 11px;
  transform: scaleX(-1);
}
html:not(.sp) .slick-prev:hover:after {
  transform: translate3d(-3px, 0, 0) scaleX(-1);
}

.slick-next {
  left: calc(50% + 68px);
}
.slick-next:after {
  right: 11px;
}
html:not(.sp) .slick-next:hover:after {
  transform: translate3d(3px, 0, 0);
}

.slick-stop,
.slick-play {
  left: 50%;
}
.slick-play {
  display: none;
}
.slick-stop {
  display: block;
}
#top-banner .slick-play {
  display: block;
}
#top-banner .slick-stop {
  display: none;
}
.slick-stop.slick-arrow:after,
.slick-play.slick-arrow:after {
  width: 48px;
  height: 48px;
  top: 0;
  margin-top: 0;
  background-size: 48px 96px;
  background-position-y: 0;
}
.slick-stop.slick-arrow:after {
  background-image: url(../images/icon/icon_stop.png);
}
.slick-play.slick-arrow:after {
  background-image: url(../images/icon/icon_play.png);
}
html:not(.sp) .slick-stop.slick-arrow:hover:after,
html:not(.sp) .slick-play.slick-arrow:hover:after {
  background-position-y: -48px;
}

.slick-track .img,
.mod .slick-track .img {
  margin-bottom: 0;
}

.mod ul.slick-dots {
  margin: 5px auto 0 auto;
  padding: 0 15px 0 0;
  text-align: center;
}
.mod ul.slick-dots li {
  display: inline-block;
  width: 16px;
  height: 16px;
  margin: 2px !important;
  padding: 3px !important;
  text-align: center;
  vertical-align: middle;
  border-radius: 8px;
  -webkit-transition: background-color .2s linear;
  transition: background-color .2s linear;
}
.mod .slick-dots li:before {
  display: none;
}
html:not(.sp) .slick-dots li:hover,
.slick-dots .slick-active {
  background-color: transparent;
}
.slick-dots li button {
  position: relative;
  display: block;
  width: 10px;
  height: 10px;
  margin: 0;
  padding: 0;
  text-indent: -9999px;
  background-color: rgba(0,0,0,.2);
  overflow: hidden;
  border: 0 none;
  cursor: pointer;
  outline: none;
  border-radius: 5px;
  -webkit-transition: background-color .2s linear;
  transition: background-color .2s linear;
}
html:not(.sp) .slick-dots li:hover button,
.slick-dots .slick-active button {
  background-color: #000;
}

/*---------------------------------------------
	[SC] スクロールエフェクト
  ---------------------------------------------*/
/* ----- [SC1] フェードイン ----- */
.mod .fadein {
  opacity: 0;
  -webkit-transform: translate3d(0, 50px, 0);
          transform: translate3d(0, 50px, 0);
}

/* ----- [SC2] スライドイン ----- */
.mod .slidein {
  visibility: hidden;
}
.mod .slidein-bg {
  position: absolute;
  z-index: 1000;
  display: block;
  overflow: hidden;
}
.mod .slidein-bg span {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #434c4d;
  -webkit-transform: translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0);
}



/*---------------------------------------------
  1410px未満
  ---------------------------------------------*/
@media screen and (max-width: 1409px), print {

  /* ----- [CL] カラム ----- */

  .mod .col-set {width: calc(100% + 4.25vw);}
  .mod .gutter10 {width: calc(100% + 10px);}
  .mod .gutter20 {width: calc(100% + 10px);}
  .mod .no-gutter {width: 100%;}

  .mod .row .no-gutter {
    margin-bottom: 20px;
  }

  .mod .col1 {width: calc(100% - 4.25vw); }
  .mod .col1-2 {width: calc(50% - 4.25vw); }
  .mod .col1-3 {width: calc(33.33333333% - 4.25vw);}
  .mod .col2-3 {width: calc(66.66666666% - 4.25vw);}
  .mod .col1-4 {width: calc(25% - 4.25vw);}
  .mod .col3-4 {width: calc(75% - 4.25vw);}
  .mod .col1-5 {width: calc(20% - 4.25vw);}
  .mod .col2-5 {width: calc(40% - 4.25vw);}
  .mod .col3-5 {width: calc(60% - 4.25vw);}
  .mod .col4-5 {width: calc(80% - 4.25vw);}
  .mod .col1-6 {width: calc(16.66666666%  - 4.25vw);}
  .mod .col5-6 {width: calc(83.33333333%  - 4.25vw);}

  .mod .col1,
  .mod .col1-2,
  .mod .col1-3,
  .mod .col2-3,
  .mod .col1-4,
  .mod .col3-4,
  .mod .col1-5,
  .mod .col2-5,
  .mod .col3-5,
  .mod .col4-5,
  .mod .col1-6,
  .mod .col5-6 {
    margin-right: 4.25vw;
  }

  .mod tex {
    width: calc(100% + 10px);
  }

  /* ----- [IG] 画像 ----- */
  .mod .img-set:not(.gutter-half) > .img {
    margin-right: 2.125vw;
    padding-right: 2.125vw;
  }
  .mod .img-set:not(.gutter-half) > .img.right {
    margin-right: 0;
    padding-right: 0;
    margin-left: 2.125vw;
    padding-left: 2.125vw;
  }

  /* ----- [PL1] パネル > 画像上 ----- */
  .mod .panel-vertical {
    margin-bottom: 4.25vw;
  }

  .mod .row .panel-horizontal {
    margin-bottom: 4.25vw;
  }

}


/*---------------------------------------------
	768px以上1200px未満
  ---------------------------------------------*/
@media screen and (max-width: 1199px) and (min-width: 768px), print {

  html {
    font-size: .94rem;
  }

}


/*---------------------------------------------
	1200px未満
  ---------------------------------------------*/
@media screen and (max-width: 1199px), print {

  /* ----- メインコンテンツ ----- */
  .mod .content {
    padding-top: 40px;
    padding-bottom: 30px;
  }

  /* ----- [IG] 画像 ----- */
  .mod .img-set.gutter-half > .img,
  .mod .thumb-set > .img {
    margin-right: 10px;
    padding-right: 10px;
  }
  .mod .img-set.gutter-half > .img.right,
  .mod .thumb-set > .img.right {
    margin-right: 0;
    padding-right: 0;
    margin-left: 10px;
    padding-left: 10px;
  }

  /* ----- [LT] リスト ----- */
  .mod ul.col-set li {
    margin-bottom: 20px;
  }

  /* ----- [BT5] ページトップボタン ----- */
  .mod #btn-pagetop {
    right: 20px;
  }
  .mod #btn-pagetop.show {
    -webkit-transform: translate3d(0, -70px, 0);
            transform: translate3d(0, -70px, 0);
  }

  /* ----- [BX] ボックス ----- */
  .mod .box {
    margin-bottom: 20px;
    padding: 20px 20px 0;
  }
  .mod .box.wide {
    margin-bottom: 20px;
    padding: 30px 4.25vw;
  }
  .mod .box .heading:first-child {
    margin: -20px -20px 20px;
    padding: 12px 20px;
  }

  /* ----- [PL] パネル ----- */
  .mod .panel-vertical .txt {
    padding: 20px 20px 0;
  }
  .mod .panel-vertical .heading {
    margin-bottom: 20px;
  }
  .mod .panel-vertical a > .heading {
    margin-bottom: 0;
    padding: 20px 20px 5px;
  }
  .mod .panel-vertical .note {
    margin: 0 20px;
  }
  .mod .panel-horizontal .txt .heading {
    font-size: 1.25rem;
  }

  .mod .panel-horizontal .txt {
    padding: 20px 20px 0;
  }

  .mod .col-set:not(.no-gutter) .panel-covered {
    margin-bottom: 20px;
  }
  .mod .col-set.gutter10 .panel-covered {
    margin-bottom: 10px;
  }

  .mod .panel-covered .txt {
    padding: 20px 20px 5px 20px;
  }

  .mod .panel-covered .heading.txt-ellipsis ~ * {
    display: none;
  }


 /* ----- [TB] 表 ----- */
  .mod table td,
  .mod table th {
    padding: 20px;
  }


  /* ----- [SL] スライダー ----- */
  .mod .slider {
    margin-bottom: 20px;
  }

  /* ----- [NV2] タブ ----- */
  .mod .tab {
    margin-bottom: 40px;
  }

  .mod .tab-element {
    padding: 20px 0 10px;
  }

  .mod .row .tab .tab-element {
    padding-left: 20px;
    padding-right: 20px;
  }

  /* ----- [FM] フォーム ----- */
  .mod .form .checkbox .heading,
  .mod .form .checkbox-jsoff .heading {
    display: block;
    margin-right: 0;
  }


  /* ----- [EB2] モーダル ----- */
  .mfp-inline-holder .mfp-content .content {
    padding: 20px 20px 0;
  }
}


/*---------------------------------------------
	768px未満
  ---------------------------------------------*/
@media screen and (max-width: 767px) {
  /* ----- メインコンテンツ ----- */
  .mod main {margin-left: 0;}
  .mod .content {
    padding-top: 40px;
    padding-bottom: 30px;
  }
  .mod .content.float-heading {
    padding-top: 0;
    margin-top: -55px;
  }

  .mod .row {
    padding: 0 4vw;
  }

  .mod .anchor:before {
    content: "";
    display: block;
    margin-top: -60px;
    padding-top: 60px;
  }

  .mod .tel {
    font-size: 1.63rem !important;
  }
  .mod .tel.free:before {
    width: 45px;
    height: 25px;
  }


  /* ----- 強制指定 ----- */
  /* 中央寄せ */
  .mod .sp-center {text-align: center !important;}
  /* 左寄せ */
  .mod .sp-left {text-align: left !important;}

  /* ----- 幅 ----- */
  .mod .sp-w50 {width: 50px !important;}
  .mod .sp-w60 {width: 60px !important;}
  .mod .sp-w70 {width: 70px !important;}
  .mod .sp-w80 {width: 80px !important;}
  .mod .sp-w90 {width: 90px !important;}
  .mod .sp-w100 {width: 100px !important;}
  .mod .sp-w110 {width: 110px !important;}
  .mod .sp-w120 {width: 120px !important;}
  .mod .sp-w130 {width: 130px !important;}
  .mod .sp-w140 {width: 140px !important;}
  .mod .sp-w150 {width: 150px !important;}
  .mod .sp-w160 {width: 160px !important;}
  .mod .sp-w170 {width: 170px !important;}
  .mod .sp-w180 {width: 180px !important;}
  .mod .sp-w190 {width: 190px !important;}
  .mod .sp-w200 {width: 200px !important;}
  .mod .sp-wauto {width: auto !important;}

  /* ----- 下余白 ----- */
  .mod .sp-mt0 {margin-top: 0px !important;}
  .mod .sp-mt10 {margin-top: 10px !important;}
  .mod .sp-mt20 {margin-top: 20px !important;}
  .mod .sp-mt30 {margin-top: 30px !important;}
  .mod .sp-mt40 {margin-top: 40px !important;}
  .mod .sp-mt50 {margin-top: 50px !important;}
  .mod .sp-mt60 {margin-top: 60px !important;}
  .mod .sp-mt70 {margin-top: 70px !important;}
  .mod .sp-mt80 {margin-top: 80px !important;}
  .mod .sp-mt90 {margin-top: 90px !important;}
  .mod .sp-mt100 {margin-top: 100px !important;}

  /* ----- 下余白 ----- */
  .mod .sp-mb0 {margin-bottom: 0px !important;}
  .mod .sp-mb8 {margin-bottom: 8px !important;}
  .mod .sp-mb10 {margin-bottom: 10px !important;}
  .mod .sp-mb20 {margin-bottom: 20px !important;}
  .mod .sp-mb30 {margin-bottom: 30px !important;}
  .mod .sp-mb40 {margin-bottom: 40px !important;}
  .mod .sp-mb50 {margin-bottom: 50px !important;}
  .mod .sp-mb60 {margin-bottom: 60px !important;}
  .mod .sp-mb70 {margin-bottom: 70px !important;}
  .mod .sp-mb80 {margin-bottom: 80px !important;}
  .mod .sp-mb90 {margin-bottom: 90px !important;}
  .mod .sp-mb100 {margin-bottom: 100px !important;}

    /* ----- 左余白 ----- */
  .mod .sp-ml0 {margin-left: 0px !important;}
  .mod .sp-ml8 {margin-left: 8px !important;}
  .mod .sp-ml10 {margin-left: 10px !important;}
  .mod .sp-ml20 {margin-left: 20px !important;}
  .mod .sp-ml30 {margin-left: 30px !important;}
  .mod .sp-ml40 {margin-left: 40px !important;}
  .mod .sp-ml50 {margin-left: 50px !important;}
  .mod .sp-ml60 {margin-left: 60px !important;}
  .mod .sp-ml70 {margin-left: 70px !important;}
  .mod .sp-ml80 {margin-left: 80px !important;}
  .mod .sp-ml90 {margin-left: 90px !important;}
  .mod .sp-ml100 {margin-left: 100px !important;}

  /* ----- 右余白 ----- */
  .mod .sp-mr0 {margin-right: 0px !important;}
  .mod .sp-mr10 {margin-right: 10px !important;}
  .mod .sp-mr20 {margin-right: 20px !important;}
  .mod .sp-mr30 {margin-right: 30px !important;}
  .mod .sp-mr40 {margin-right: 40px !important;}
  .mod .sp-mr50 {margin-right: 50px !important;}
  .mod .sp-mr60 {margin-right: 60px !important;}
  .mod .sp-mr70 {margin-right: 70px !important;}
  .mod .sp-mr80 {margin-right: 80px !important;}
  .mod .sp-mr90 {margin-right: 90px !important;}
  .mod .sp-mr100 {margin-right: 100px !important;}

  /* 表示／非表示 */
  .show-pc {
    display: none !important;
  }

  /* 文字サイズ */
  .mod .ll {font-size: 1rem !important;}
  .mod .sp-l {font-size: 1.06rem !important;}
  .mod .sp-m {font-size: 0.88rem !important;}
  .mod .sp-s {font-size: 0.75rem !important;}

  /* ----- [CL] カラム ----- */
  .mod .col-set {
    width: calc(100% + 4vw);
  }

  .mod .gutter10 {
    width: calc(100% + 8px);
    margin-right: 8px;
  }

  .mod .gutter20 {
    width: calc(100% + 4vw);
  }

  .mod .gutter40 {
    width: calc(100% + 4vw);
  }

  .mod .no-gutter {
    width: 100%;
  }
  .row .mod .no-gutter {
    margin-bottom: 15px;
  }
  .mod .col-set.reverse,
  .mod .col-set.sp-reverse {
    flex-direction: column-reverse;
  }

  .mod .col1,
  .mod .col1-2,
  .mod .col1-3,
  .mod .col2-3,
  .mod .col1-4,
  .mod .col3-4,
  .mod .col1-5,
  .mod .col2-5,
  .mod .col3-5,
  .mod .col4-5,
  .mod .col1-6,
  .mod .col5-6 {
    width: calc(100% - 4vw);
    margin-right: 4vw;
  }

  .mod .no-gutter > .col1,
  .mod .no-gutter > .col1-2,
  .mod .no-gutter > .col1-3,
  .mod .no-gutter > .col2-3,
  .mod .no-gutter > .col1-4,
  .mod .no-gutter > .col3-4,
  .mod .no-gutter > .col1-5,
  .mod .no-gutter > .col2-5,
  .mod .no-gutter > .col3-5,
  .mod .no-gutter > .col4-5,
  .mod .no-gutter > .col1-6,
  .mod .no-gutter > .col5-6  {
    width: 100%;
  }

  .mod .gutter10 .col1,
  .mod .gutter10 .col1-2,
  .mod .gutter10 .col1-3,
  .mod .gutter10 .col2-3,
  .mod .gutter10 .col1-4,
  .mod .gutter10 .col3-4,
  .mod .gutter10 .col1-5,
  .mod .gutter10 .col2-5,
  .mod .gutter10 .col3-5,
  .mod .gutter10 .col4-5,
  .mod .gutter10 .col1-6,
  .mod .gutter10 .col5-6 {
    width: calc(50% - 8px);
    margin-right: 8px;
  }

  .mod .gutter20 .col1,
  .mod .gutter20 .col1-2,
  .mod .gutter20 .col1-3,
  .mod .gutter20 .col2-3,
  .mod .gutter20 .col1-4,
  .mod .gutter20 .col3-4,
  .mod .gutter20 .col1-5,
  .mod .gutter20 .col2-5,
  .mod .gutter20 .col3-5,
  .mod .gutter20 .col4-5,
  .mod .gutter20 .col1-6,
  .mod .gutter20 .col5-6 {
    width: calc(100% - 4vw);
    margin-right: 4vw;
  }
  
  .mod .gutter40 .col1,
  .mod .gutter40 .col1-2,
  .mod .gutter40 .col1-3,
  .mod .gutter40 .col2-3,
  .mod .gutter40 .col1-4,
  .mod .gutter40 .col3-4,
  .mod .gutter40 .col1-5,
  .mod .gutter40 .col2-5,
  .mod .gutter40 .col3-5,
  .mod .gutter40 .col4-5,
  .mod .gutter40 .col1-6,
  .mod .gutter40 .col5-6 {
    width: calc(100% - 4vw);
    margin-right: 4vw;
  }

  .mod .sp-col1-2 {width: calc(50% - 4vw);}
  .mod .no-gutter > .sp-col1-2 {width: 50%;}
  .mod .gutter20 .sp-col1-2 {width: calc(50% - 4vw);}
  .mod .sp-col1-3 {width: calc(33.33333333% - 4vw);}
  .mod .no-gutter > .sp-col1-3 {width: 33.33333333%;}
  .mod .gutter20 .sp-col1-3 {width: calc(33.33333333% - 4vw);}
  .mod .gutter40 .sp-col1-2 {width: calc(50% - 4vw);}
  .mod .gutter40 .sp-col1-3 {width: calc(33.33333333% - 4vw);}

  .mod .row .gutter10 .col1,
  .mod .row .gutter10 .col1-2,
  .mod .row .gutter10 .col1-3,
  .mod .row .gutter10 .col2-3,
  .mod .row .gutter10 .col1-4,
  .mod .row .gutter10 .col3-4,
  .mod .row .gutter10 .col1-5,
  .mod .row .gutter10 .col2-5,
  .mod .row .gutter10 .col3-5,
  .mod .row .gutter10 .col4-5,
  .mod .row .gutter10 .col1-6,
  .mod .row .gutter10 .col5-6 {
    width: 100%;
  }
  .mod .row .gutter10 .col1.sp-col1-2,
  .mod .row .gutter10 .col1-2.sp-col1-2,
  .mod .row .gutter10 .col1-3.sp-col1-2,
  .mod .row .gutter10 .col2-3.sp-col1-2,
  .mod .row .gutter10 .col1-4.sp-col1-2,
  .mod .row .gutter10 .col3-4.sp-col1-2,
  .mod .row .gutter10 .col1-5.sp-col1-2,
  .mod .row .gutter10 .col2-5.sp-col1-2,
  .mod .row .gutter10 .col3-5.sp-col1-2,
  .mod .row .gutter10 .col4-5.sp-col1-2,
  .mod .row .gutter10 .col1-6.sp-col1-2,
  .mod .row .gutter10 .col5-6.sp-col1-2 {
    width: calc(50% - 8px);
    margin-right: 8px;
  }
  .mod .row .gutter10 .col1.sp-col1-3,
  .mod .row .gutter10 .col1-2.sp-col1-3,
  .mod .row .gutter10 .col1-3.sp-col1-3,
  .mod .row .gutter10 .col2-3.sp-col1-3,
  .mod .row .gutter10 .col1-4.sp-col1-3,
  .mod .row .gutter10 .col3-4.sp-col1-3,
  .mod .row .gutter10 .col1-5.sp-col1-3,
  .mod .row .gutter10 .col2-5.sp-col1-3,
  .mod .row .gutter10 .col3-5.sp-col1-3,
  .mod .row .gutter10 .col4-5.sp-col1-3,
  .mod .row .gutter10 .col1-6.sp-col1-3,
  .mod .row .gutter10 .col5-6.sp-col1-3 {
    width: calc(33.33333333% - 8px);
    margin-right: 8px;
  }


  /* ----- [HG] 見出し ----- */
  .mod .content h1:not([class*="heading"]) {
    margin: 0 0 30px;
    font-size: 1.25rem;
  }

  .mod h2:not([class*="heading"]),
  .mod .heading1 {
    margin: 40px 0 25px;
    font-size: 1.25rem;
  }
  .mod h2.en-jp .txt-en {
    font-size: 1.55rem;
    line-height: 1.35;
  }
  .mod h2.en-jp span:not(.txt-en) {
    margin-top: 0;
    font-size: .88rem;
  }
  .mod h3:not([class*="heading"]),
  .mod .heading2 {
    margin: 40px 0 15px;
    font-size: 1.25rem;
  }
  .mod .heading2 span {
    font-size: 0.94rem;
  }
  .mod h3.icon-check {
    position: relative;
    padding-left: 40px;
  }
  .mod h3.icon-check::before {
    top: 1px;
    left: 0;
    width: 30px;
    height: 30px;
  }
  .mod h3.icon-check::after {
    top: 12px;
    left: 10px;
    width: 10px;
    height: 5px;
  }
  .mod h3.icon-check + * {
    padding-left: 40px;
  }
  .mod h3.sub-heading {
    margin-top: -10px !important;
    font-size: 1.25rem;
  }
  .mod h4:not([class*="heading"]),
  .mod .heading3 {
    margin: 20px 0 15px;
    font-size: 1.19rem;
  }

  .mod h5:not([class*="heading"]),
  .mod .heading4 {
    margin: 10px 0 15px;
    font-size: 1.13rem;
  }

  .mod h6:not([class*="heading"]),
  .mod .heading5 {
    margin: 0 0 15px;
    font-size: 1rem;
  }

  .mod .heading-box {
    padding: 20px 4vw;
    font-size: 1.06rem;
  }

  .mod .title-line::before,
  .mod .title-line::after {
    display: block;
    position: absolute;
    top: 50%;
    left: -9vw;
    width: 7vw;
    height: 1px;
    background: #999;
    transform: translateY(-50%);
    content: "";
  }
  .mod .title-line:after {
    left: auto;
    right: -9vw;
  }
  .mod h2.ribbon .ribbon-upper,
  .mod h2.ribbon .ribbon-lower {
    width: 100%;
  }

  .mod h2 + h3,
  .mod h2 + h4,
  .mod h3 + h4,
  .mod h2 + h5,
  .mod h3 + h5,
  .mod h4 + h5,
  .mod h2 + h6,
  .mod h3 + h6,
  .mod h4 + h6,
  .mod h5 + h6,
  .mod h2 + [class*="heading"],
  .mod h3 + [class*="heading"],
  .mod h4 + [class*="heading"],
  .mod h5 + [class*="heading"],
  .mod h6 + [class*="heading"],
  .mod [class*="heading"] + h2,
  .mod [class*="heading"] + h3,
  .mod [class*="heading"] + h4,
  .mod [class*="heading"] + h5,
  .mod [class*="heading"] + h6,
  .mod [class*="heading"] + [class*="heading"],
  .mod h2:first-child,
  .mod h3:first-child,
  .mod h4:first-child,
  .mod h5:first-child,
  .mod h6:first-child,
  .mod [class*="heading"]:first-child {
    margin-top: 0;
  }

  .mod .col-set + h2 {
    margin-top: 25px;
  }
  .mod .col-set + h3 {
    margin-top: 15px;
  }
  .mod .col-set + h4 {
    margin-top: 5px;
  }
  .mod .col-set + h5 {
    margin-top: 0;
  }
  .mod .col-set + h6 {
    margin-top: 0;
  }
  .mod .col-set + .heading1 {
    margin-top: 25px;
  }
  .mod .col-set + .heading2 {
    margin-top: 15px;
  }
  .mod .col-set + .heading3 {
    margin-top: 5px;
  }
  .mod .col-set + .heading4 {
    margin-top: 0;
  }
  .mod .col-set + .heading5 {
    margin-top: 0;
  }

  /* ----- [TX] テキスト ----- */
  .mod p {
    margin-bottom: 15px;
  }

  .mod .copy {
    font-size: 1.31rem;
  }

  .mod .note + .note,
  .mod .note-num + .note-num {
    margin-top: -10px;
  }

  .mod h2 + .txt-sub {
    margin: -15px 0 30px;
    font-size: 0.94rem;
  }
  .mod h2.center + .txt-sub {
    text-align: left;
  }

  /* ----- [HR]  区切り線 ----- */
  .mod hr {
    margin: 10px 0 15px 0;
  }

  /* ----- [IG] 画像 ----- */
  .mod .img {
    margin-bottom: 15px;
  }

  .mod figure {
    margin-bottom: 15px;
  }

  .mod .caption {
    margin-top: -5px;
  }

  .mod .right .caption {
    margin-right: auto;
  }

  .mod .img-set > .img,
  .mod .img-set > .img.right {
    float: none;
    width: auto;
    max-width: none;
    text-align: center !important;
  }
  .mod .img-set.gutter-half > .img,
  .mod .img-set:not(.gutter-half) > .img,
  .mod .img-set.gutter-half > .img.right,
  .mod .img-set:not(.gutter-half) > .img.right {
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
  .mod .img-set > .img.sp-left {
    text-align: left !important;
  }
  .mod .img-set > .img.sp-right {
    text-align: right !important;
  }
  .mod .thumb-set > .img {
    margin-right: 7.5px;
    padding-right: 7.5px;
  }
  .mod .thumb-set > .img.right {
    margin-right: 0;
    padding-right: 0;
    margin-left: 7.5px;
    padding-left: 7.5px;
  }
  .mod .thumb-set > .img .bg-img {
      width: 80px;
      height: 80px;
  }
  .mod .thumb-set span:not(.post) {
    display: block;
  }

  .mod .gutter10 .img {
    margin-bottom: 8px;
  }

  /* ----- [LT] リスト ----- */
  .mod ul {
    margin-bottom: 15px;
  }
  .mod ul.col-set li {
    margin-bottom: 15px;
  }

  .mod ol {
    margin-bottom: 15px;
  }

  .mod dl {
    display: block;
    margin-bottom: 15px;
  }
  .mod dl dt,
  .mod dl dd,
  .mod dl dt[class^="w"] ~ dt,
  .mod dl dt[class*=" w"] ~ dt,
  .mod dl dt[class^="w"] ~ dd,
  .mod dl dt[class*=" w"] ~ dd {
    width: auto;
  }
  .mod dl dt.sp-center {
    margin-left: auto;
    margin-right: auto;
  }
  .mod dl dd {
   padding: 0 0 10px 0;
  }
  .mod dl.sp-horizontal {
    display: flex;
  }
  .mod dl.sp-horizontal dt {
    width: 200px !important;
    padding-bottom: 5px !important;
  }
  .mod dl.sp-horizontal dd {
    width: calc(100% - 200px);
    padding: 0 0 15px;
  }
  .mod dl.sp-horizontal dt.w70,
  .mod dl.sp-horizontal dt.w70 ~ dt {
    width: 70px !important;
  }
  .mod dl.sp-horizontal dt.w70 ~ dd {
    width: calc(100% - 70px) !important;
  }
  .mod dl.border-set {
    border-bottom: 0 none;
    border-top: solid 1px #e5e9e9;
  }
  .mod dl.border-set > dt {
    padding: 15px 0 5px;
    border-top: 0 none;
  }
  .mod dl.border-set > dd {
    width: auto;
    padding: 0 0 15px;
    border-top: 0 none;
    border-bottom: solid 1px #e5e9e9;
  }
  .mod dl:not(.border-set) dt:last-of-type {
      padding-bottom: 10px;
  }
 .mod dl.news > dt {
    float: left;
    padding-bottom: 0;
  }
  .mod dl.news.border-set > dt {
    float: left;
    padding-top: 15px;
    border-top: 0 none;
  }
  .mod dl.news > dd {
    width: 100%;
  }
  .mod dl.news > dd .tag,
  .mod dl.news > dd .label {
    clear: none;
    float: right;
    margin: 0 0 5px;
  }
  .mod dl.news.border-set .tag, .mod dl.news.border-set .label {
    margin-top: 15px;
  }
  .mod dl.news.border-set p + .tag, .mod dl.news.border-set p + .label {
    margin-top: 0;
  }
  .mod dl.news > dd .tag + p,
  .mod dl.news > dd .label + p {
    clear: both;
  }

  /* 定義リスト + インラインラベル */
  .mod dl.label-color dd {
    padding-left: 0;
  }

  /* ----- [LK1] アイコンリンク ----- */
  .mod .link-icon:not(li) + .link-icon {
    margin-top: -5px;
  }
  .mod .link-icon.ll .icon-anchor::after,
  .mod .ll a .link-icon.icon-anchor a:after {
    width: 8px;
    height: 8px;
    margin: -8px 0 0 8px;
  }

  /* ----- [LK2] 横並びリンク ----- */
  .mod .link-horizontal {
    margin-bottom: 5px;
  }
  .mod .link-horizontal.sp-vertical {
    flex-direction: column;
  }
  .mod .link-horizontal.center a,
  .mod .link-horizontal.center a:last-child {
    margin-right: 15px;
  }

  /* ----- [TG1] タグ ----- */
  .mod .tag {
    margin-bottom: 7px;
  }

  .mod .text-tag a {
    margin-right: .5em;
    font-size: .94rem;
  }
  .mod .text-tag .unit {
    margin-bottom: 25px;
  }
  .mod .text-tag .unit .heading {
    display: block;
    margin-right: 0;
  }

  /* ----- [TG2] ラベル ----- */
  .mod .label {
    margin-bottom: 5px;
  }

  /* ----- [BT] ボタン ----- */
  .mod .btn {
    margin: 0 -15px 0 0;
  }

  .mod .btn > * {
    margin: 0 15px 15px 0;
  }

  .mod .btn.thick > * {
    height: auto;
  }
  .mod .btn.contact a span:before,
  .mod .btn.request a span:before {
    width: 30px;
    height: 30px;
    background-size: 30px;
  }
  .mod .content .btn.request a {
    font-size: 0.88rem;
  }
  .mod .content .btn.request a i {
    font-size: 0.63rem;
  }
  .mod .content .btn.request a span:before {
    margin-top: 2px;
  }

  .mod .btn.sp-center { /* add202109 */
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
	
  /* ----- [BT3] シェアボタン ----- */
  .mod .btn-share {
    margin-bottom: 0;
  }


  /* ----- [BT5] ページトップボタン ----- */
  .mod #btn-pagetop {
    right: 15px;
  }
  .mod #btn-pagetop.show {
    -webkit-transform: translate3d(0, -135px, 0);
    transform: translate3d(0, -135px, 0);
  }
  .mod #bottombar.is-hide + #pagetop #btn-pagetop.show {
    -webkit-transform: translate3d(0, -65px, 0);
    transform: translate3d(0, -65px, 0);
  }

  /* ----- [BX] ボックス ----- */
  .mod .box,
  .mod .box.wide {
    margin-bottom: 15px;
    padding: 15px 15px 0;
  }
  .mod .box .heading:first-child {
    margin: -15px -15px 15px;
    padding: 12px 15px;
  }
  .mod .box h2:not([class*="heading"]),
  .mod .box .heading1 {
    margin-top: 10px;
  }


  /* ----- [PL] パネル ----- */
  /* [PL1] パネル > 画像上 */
  .mod .panel-vertical {
    margin-bottom: 15px;
    box-shadow: none;
  }
  .mod .panel-vertical p {
    font-size: 0.88rem;
  }
  .mod .panel-vertical a > .heading {
    width: 100%;
    margin-bottom: 0;
    padding: 15px 15px 0;
    font-size: 1rem;
  }
  .mod .panel-vertical .note {
    width: calc(100% - 30px);
    margin: 0 15px;
    padding: 12px 0 10px 0;
    font-size: 0.81rem;
    order: 4;
  }

  .mod .panel-vertical .txt {
    padding: 15px 15px 0;
  }
  .mod .panel-vertical .txt + .tag {
    padding: 10px 7px 2px 15px;
  }

  .mod .sp-horizontal2 .panel-vertical {
    width: calc(100% + 8vw);
    margin-left: -4vw;
    margin-right: -4vw;
    padding-right: 4vw;
  }
  .mod .sp-horizontal2 .panel-vertical > a {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .mod .sp-horizontal2 .panel-vertical > a:after {
    content: "";
    display: block;
    clear: both;
  }
  .mod .sp-horizontal2 .panel-vertical .img {
    width: 25%;
    margin: 15px;
    order: 2;
  }
  .mod .sp-horizontal2 .panel-vertical .txt {
    width: calc(75% - 30px);
    margin: 0;
    order: 3;
  }
  .mod .panel-vertical a > .heading + .txt {
    padding-top: 15px;
  }

  .mod .sp-gutter1 > * {
    margin-bottom: 1px !important;
  }

  .mod .sp-horizontal2 .panel-vertical .txt {
    padding: 15px 15px 0 0;
    overflow: hidden;
  }
  .mod .sp-horizontal2 .panel-vertical .label {
    position: relative;
    display: block;
    margin: 0;
    padding: 0;
  }
  .mod .sp-horizontal2 .panel-vertical .label span {
    float: none;
    display: block;
    text-align: center;
    border: 0 none !important;
  }

  /* [PL2] パネル > 画像左右 */
  .mod .panel-horizontal,
  .mod .panel-horizontal > a {
    display: block;
  }
  .mod .panel-horizontal:before,
  .mod .panel-horizontal > a:before {
    display: none;
  }
  .mod .panel-horizontal .img {
    width: auto !important;
  }
  .mod .panel-horizontal .img > a {
    position: relative;
  }
  .mod .panel-horizontal .txt {
    width: auto !important;
    left: 0 !important;
    padding: 20px 20px 5px;
  }
  .mod .panel-horizontal .txt .heading {
    margin-bottom: 20px;
    font-size: 1.13rem;
  }
  .mod .panel-horizontal .date {
    font-size: 0.94rem;
  }
  .mod .panel-horizontal .tag {
    font-size: 0.88rem;
  }

  .mod .row .panel-horizontal {
    margin-bottom: 35px;
  }

  /* [PL4] パネル > 背景画像 */
  .mod .panel-covered .txt {
    padding: 15px 15px 5px 15px;
  }
  .mod .panel-covered .row.txt {
    padding-left: 4vw;
    padding-right: 4vw;
  }

  .mod .panel-covered　.heading.txt-ellipsis {
    margin-bottom: 10px;
  }

  .mod .col-set:not(.no-gutter) .panel-covered {
    margin-bottom: 15px;
  }
  .mod .col-set.gutter10 .panel-covered {
    margin-bottom: 8px;
  }

  .mod .col-set.sp-horizontal {
    width: 100%;
    margin: 0;
  }
  .mod .row .col-set.sp-horizontal {
    width: calc(100% + 8vw);
    margin: 0 -4vw;
  }
  .mod .col-set.sp-horizontal .col1,
  .mod .col-set.sp-horizontal .col1-2,
  .mod .col-set.sp-horizontal .col1-3,
  .mod .col-set.sp-horizontal .col1-4 {
    width: 100% !important;
    margin: 0 0 8px 0;
    background-color: transparent;
  }
  .mod .col-set.sp-horizontal .panel-vertical,
  .mod .col-set.sp-horizontal .panel-covered  {
    background-color: #fff;
  }
  .mod .col-set.sp-horizontal .panel-vertical > a {
    flex-direction: row;
  }
  .mod .col-set.sp-horizontal .panel-vertical > a:before,
  .mod .col-set.sp-horizontal .panel-covered:before,
  .mod .col-set.sp-horizontal .panel-covered > a:before {
    padding-top: 26%;
  }
  .mod .col-set.sp-horizontal .panel-vertical > a:before,
  .mod .col-set.sp-horizontal .panel-covered > a:after {
    width: 26%;
  }
  .mod .col-set.sp-horizontal.img-square .panel-vertical > a:before,
  .mod .col-set.sp-horizontal.img-square .panel-covered:before,
  .mod .col-set.sp-horizontal.img-square .panel-covered > a:before {
    padding-top: 34.6%;
  }
  .mod .col-set.sp-horizontal.img-square .panel-vertical > a:before,
  .mod .col-set.sp-horizontal.img-square .panel-covered > a:after {
    width: 34.6%;
  }
  .mod .col-set.sp-horizontal .panel-vertical .img,
  .mod .col-set.sp-horizontal .panel-covered .img {
    position: relative;
    width: 34.6%;
    margin-bottom: 0;
  }
  .mod .sp-horizontal .panel-vertical .img .bg-img,
  .mod .sp-horizontal .panel-horizontal .img .bg-img {
    height: 100%;
    min-height: 130px;
  }

  .mod .col-set.sp-horizontal .panel-vertical .txt,
  .mod .col-set.sp-horizontal .panel-covered .txt {
    width: 65.4%;
    margin: auto;
    padding: 10px 15px 0;
    align-self: center !important;
  }
  .mod .col-set.sp-horizontal .panel-vertical .txt.top,
  .mod .col-set.sp-horizontal .panel-covered .txt.top {
    margin: 0;
    padding-top: 15px;
    align-self: flex-start !important;
  }
  .mod .col-set.sp-horizontal .panel-covered p {
    color: #999 !important;
  }
  .mod .col-set.sp-horizontal .panel-vertical .heading,
  .mod .col-set.sp-horizontal .panel-covered .heading {
    color: #000 !important;
    line-height: 1.5;
  }
  .mod .col-set.sp-horizontal .panel-covered .txt {
    background-image: none;
  }
  .mod .panel-link > * {
    padding: 25px 15px;
  }
  .mod .panel-link .heading {
    font-size: 1.15rem;
  }
  .mod .panel-link .heading span {
    font-size: .95rem;
  }
  /* ----- [TB] 表 ----- */
  .mod table {
    margin-bottom: 15px;
  }
  .mod table th,
  .mod table td {
    padding: 15px;
  }

  .mod table.sp-vertical th,
  .mod table.sp-vertical td {
    display: block;
    width: 100%;
  }
  .mod table.sp-vertical td {
    padding: 15px 0;
  }
  .mod table.table-thin th,
  .mod table.table-thin td {
    padding: 5px 10px;
  }
  .mod table.table-th-vertical th {
    padding: 15px 20px;
    border-right: none;
  }
  .mod table.table-th-vertical td {
    display: block;
    width: auto;
  }
  .mod table.table-th-vertical tr:last-of-type td:not(:last-of-type),
  .mod table.table-th-vertical tr:not(:last-of-type) td {
    border-bottom: none;
  }


  /* 水平スクロールバー */
  .mod .scroll {
    margin: 0 0 15px;
    overflow-x: auto;
  }
  .mod .scroll::-webkit-scrollbar {
    height: 5px;
  }
  .mod .scroll::-webkit-scrollbar-track {
    background: #f2f4f4;
    -webkit-border-radius: 100px;
  }
  .mod .scroll::-webkit-scrollbar-thumb {
    background: #999;
    -webkit-border-radius: 100px;
  }
  .mod .scroll > * {
    min-width: 738px;
    margin-bottom: 15px;
  }

  /* ----- [NV1] コンテンツナビゲーション ----- */
  .mod .nav-content {
    margin-bottom: 15px;
    overflow: hidden;
  }
  .mod .nav-content ul {
    width: calc(100% + 1px);
    margin-bottom: 0;
    border-left: 0 none !important;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .mod .nav-content li {
    width: 50%;
    min-height: 50px;
  }
  .mod .nav-content a {
    padding: 5px 10px;
  }


  /* ----- [NV2] タブ ----- */
  .mod .tab {
    margin-bottom: 30px;
  }

  .mod .row .tab {
    margin-bottom: 15px;
  }
  .mod .row .tab .tab-element {
    padding-left: 4vw;
    padding-right: 4vw;
  }
  .mod .tab-nav li {
    min-height: 50px;
    transform: translate3d(0, 0, 0);
  }
  .mod .tab-nav li.sp-narrow {
    width: 65%;
  }

  .mod .tab-nav li a {
    padding: 0;
  }
  .mod .tab-nav li.current a {
    padding-bottom: 10px;
  }
  .mod .sub.float-heading.case {
    margin-top: 50px !important;
  }
  .mod .tab.float-heading .tab-nav:not(.sp-slide) {
    width: calc(100% - 8vw);
  }
  .mod .tab.float-heading .tab-nav li a {
    line-height: 1.4;
  }
  .mod .tab.float-heading > .row > .tab-nav.sp-slide {
    width: 100%;
  }
  .mod .tab.float-heading > .row:first-of-type .tab-nav li {
    min-height: 55px;
  }
  .mod .tab.float-heading > .row:first-of-type .tab-nav li a {
    font-size: 0.81rem;
  }

  .mod .tab-nav.sp-slide,
  .mod .tab-nav.sp-slide.letters {
    margin: 0 -4vw;
    padding: 0 35px;
  }
  .mod .tab-nav.sp-slide .slick-list {
    padding-top: 10px;
  }

  .sp .mod .tab-nav.sp-slide {
    width: calc(100% + 8vw + 1px);
  }

  .sp .mod .tab-nav.sp-slide li[aria-hidden="true"] a {
    visibility: hidden;
    transition: visibility .5s linear;
  }
  .sp .mod .tab-nav.sp-slide .slick-list {
    left: -1px;
    margin-right: -1px;
  }

  .mod .tab-nav.sp-slide .slick-arrow {
    width: 35px;
    height: 60px;
    bottom: auto;
    top: 10px;
    margin: 0;
    background-color: #000;
    border-radius: 0;
    box-shadow: none;
    transition: background-color .2s linear;
  }
  .mod .tab-nav.sp-slide .slick-arrow:after {
    background-position-y: -144px;
  }
  .mod .tab-nav.sp-slide .slick-arrow.slick-disabled {
    display: none !important;
  }
  .mod .tab-nav.sp-slide .slick-prev {
    left: 0;
    border-right: solid 1px #585858;
  }
  .mod .tab-nav.sp-slide .slick-prev:after {
    left: 4px;
  }
  .mod .tab-nav.sp-slide.letters .slick-arrow {
    background: #c1b4a0;
  }
  .mod .tab-nav.sp-slide.letters .slick-next,
  .mod .tab-nav.sp-slide.letters .slick-prev {
    border-color: #d4cbbd
  }

  html:not(.sp) .mod .tab-nav.sp-slide .slick-prev:hover:after {
    transform: scaleX(-1);
  }
  .mod .tab-nav.sp-slide .slick-next {
    left: auto;
    right: 0;
    border-left: solid 1px #585858;
  }
  .mod .tab-nav.sp-slide .slick-next:after {
    left: 5px;
  }
  html:not(.sp) .mod .tab-nav.sp-slide .slick-next:hover:after {
    transform: none;
  }

  .mod .tab-container {
    margin: 0 -15px;
  }

  .mod .row .tab .tab-container {
    margin: 0;
  }

  .mod .tab-element {
    padding: 15px 15px 5px !important;

  }
  .mod .fade:not(.sub) .tab-element {
    padding: 0 !important;
  }
  .mod .fade .tab-element .tab-element {
    padding: 15px !important;
  }

  .mod .sub .tab-nav li a {
    font-size: 0.81rem;
  }
  .mod .result-tab {
    padding-bottom: 25px;
  }
  .mod .result-tab .sub.float-heading {
    margin-top: 80px !important;
  }
  .mod .result-tab .sub.float-heading .tab-nav.sp-slide {
    width: 100%;
  }
  .mod .result-tab .sub.float-heading .content {
    padding-top: 20px;
  }
  .mod .result-tab .result-content > .tab-content {
    padding-top: 25px;
  }

  /* ----- [FM] フォーム ----- */

  /* ----- [EB1] 動画埋め込み ----- */
  .mod .embed-video {
    margin-bottom: 15px;
  }

  /* ----- [EB2] モーダル ----- */


  .mfp-inline-holder .mfp-content .content {
    padding: 15px 15px 0;
  }
  .mfp-inline-holder .mfp-content,
  .mfp-iframe-holder .mfp-content {
    width: calc(100% - 8vw);
  }
  .mfp-content {
    margin-left: 4vw;
    margin-right: 4vw;
  }
  .mfp-ready .mfp-arrow-left {
    left: 5px;
  }
  .mfp-ready .mfp-arrow-right {
    right: 5px;
  }

  /* ----- [SL] スライダー ----- */
  .mod .slider {
    padding-bottom: 0;
    margin-bottom: 15px;
  }

  .mod .row .slider {
    margin-left: -4vw;
    margin-right: -4vw;
  }

  .mod .slider.banners .col1-3 {padding: 0;}

  .mod .col-set.slick-initialized,
  .mod .col-set.gutter10.slick-initialized {
    margin-bottom: 0;
  }

  .mod .slider.banners ul.col-set:not(.slick-initialized) {
    width: 100%;
  }
  .mod .slider.banners ul.col-set:not(.slick-initialized) li {
    width: 68%;
    margin-left: auto;
    margin-right: auto;
  }

  .slick-stop,
  .slick-play {
    display: none !important;
  }

}
/*---------------------------------------------
	480px未満
  ---------------------------------------------*/
@media screen and (max-width: 479px) {
  /* ----- [BT] ボタン ----- */

  .mod .btn > * {
    width: 100%;
    padding: 12px 0 11px;
  }

  .mod .btn.w-auto > * {
    width: auto;
  }

  .mod .btn.large {
    margin-top: 20px;
  }

  .mod .btn > * {
    min-width: 0 !important;
  }


  /* ----- [FM] フォーム ----- */
  .mod .form input[type="text"],
  .mod .form textarea {
    max-width: 100%;
  }

  .mod .tab.float-heading > .row:first-of-type .tab-nav.sp-slide li a {
    font-size: 3vw;
    line-height: 1.4;
  }
}
/*---------------------------------------------
	印刷用
  ---------------------------------------------*/
@media print {
  * {
    -webkit-print-color-adjust: exact;
  }

  body {
    width: 1024px;
    background-color: #fff;
  }

  .slick-track {
    width: 50000px !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
            transform: translate3d(0, 0, 0) !important;
  }

  .slider .col1-2 {
    width: 482px !important;
  }
  .slider .col1-3 {
    width: 314.66666666px !important;
  }
  .slider .col1-4 {
    width: 231px !important;
  }
  .slider .col1-5 {
    width: 180.8px !important;
  }

  .slick-list {
    padding: 0 !important;
  }

  .slick-arrow {
    display: none !important;
  }

  .slick-dots {
    display: none !important;
  }
}



/*---------------------------------------------
	header & bottombar
  ---------------------------------------------*/
.mod header {
  position: fixed;
  display: flex;
  justify-content: space-between;
  width: 100%;
  height: 120px;
  left: 0;
  top: 0;
  z-index: 10000;
  transition: height .2s linear, z-index 0s linear .2s;
}

html:not(.sp) .mod header:hover,
.level3 .mod header,
.menu-on .mod header {
  background-color: #fff;
}
.is-scroll .mod header {
  background-color: #fff;
  box-shadow: 0 0 30px rgba(0, 0, 0, .1);
}
.menu-on .mod header {
  z-index: 10002;
  transition: height .2s linear, z-index 0s linear 0s;
}

.mod header .logo {
  position: relative;
  display: flex;
  width: 200px;
  height: 120px;
  margin-left: 60px;
  margin-bottom: 0;
  padding-left: 20px;
  z-index: 10;
}
.mod header .logo > * {
  display: block;
  width: 150px;
  height: 30px;
  margin: 0 auto;
  text-indent: -9999px;
  background: url("../images/logo.png") no-repeat left center;
  background-size: contain;
  align-self: center;
}
.mod header .logo.is-show > * {
  background-image: url("../images/logo.png") !important;
}
html:not(.sp) .mod header:hover .logo > *,
.level3 .mod header .logo > *,
.menu-on .mod header .logo > *,
.is-scroll .mod header .logo > *,
.is-scroll .mod header .logo.is-show > * {
  background-image: url("../images/logo_color.png");
}

.mod #gnav {
  position: relative;
  width: calc(100% - 260px);
}
.mod #gnav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.mod #gnav > ul {
  display: flex;
  width: 100%;
  height: 120px;
  padding-left: 35px;
  padding-right: calc(270px + 190px);
}
.mod #gnav ul li {
  margin: 0;
  padding: 0;
}
.mod #gnav ul li:before {content: none;}

.mod #gnav a,
.mod #gnav button {
  position: relative;
  display: flex;
  height: 100%;
  margin: 0;
  padding: 0;
  color: #fff;
  font-size: 0.94rem;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  border: none;
  background: transparent;
  outline: none;
  cursor: pointer;
	appearance: none;
}
.mod #gnav > ul li:not(.nav-btn) a {
  padding: 4px 25px 0;
  font-weight: 500;
}
html:not(.sp) .mod #gnav > ul li:not(.nav-btn) a:hover {
  color: rgba(0,0,0,.55);
}
html:not(.sp) .mod #gnav > ul li:not(.nav-btn) a:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 2px;
  transform: translateX(-50%);
  transition: .2s ease-out;
  background-color: #e50124;
}
html:not(.sp) .mod #gnav > ul li:not(.nav-btn) a:hover:after {
  width: 100%;
}
.mod #gnav a span,
.mod #gnav button span {
  position: relative;
  align-self: center;
}

.mod #gnav a span:after {
  opacity: .8;
  -webkit-transition: opacity .2s linear;
  transition: opacity .2s linear;
}
html:not(.sp) .mod #gnav a:hover span:after {
  opacity: 1;
}

.mod #gnav .nav-btn {
  position: absolute;
  top: 0;
  width: 90px;
  height: 100%;
  margin: 0;
}

.mod .nav-btn a,
.mod .nav-btn button {
  display: flex;
  width: 100%;
  height: 100%;
  padding: 0;
  color: #fff;
  font-size: 0.81rem !important;
  text-decoration: none;
  transition: .2s ease-out;
}
html:not(.sp) .mod .nav-btn a,
html:not(.sp) .mod .nav-btn button {
  color: #fff;
  text-decoration: none;
}
.mod .nav-btn a span,
.mod .nav-btn button span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 60px;
  padding-top: 35px;
}
.mod .nav-btn a span:after,
.mod .nav-btn button span:after {
  content: "";
  position: absolute;
  display: inline-block;
  left: calc(50% - 12px);
  top: 0;
  width: 24px;
  height: 24px;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: center top;
}
.mod #gnav #nav-menu {right: 180px;}

.mod #gnav #nav-menu:after,
.mod #gnav #nav-menu button:before,
.mod #gnav #nav-menu button:after {
  content: "";
  position: absolute;
  display: block;
  top: 50%;
  right: calc(50% - 9px);
  width: 18px;
  height: 1px;
  background-color: rgba(255,255,255,.5);
  z-index: 1;
}
.mod #gnav #nav-menu:after {
  margin-top: -24px;
  transition: transform .3s ease-out, margin .3s ease-out, width .3s ease-out;
}
.mod #gnav #nav-menu button:before {
  margin-top: -17px;
  transition: width .3s ease-out, right .3s ease-out;
}
.mod #gnav #nav-menu button:after {
  margin-top: -10px;
  transition: transform .3s ease-out, margin .3s ease-out;
}
html:not(.sp) .mod #gnav #nav-menu:hover:after {
  width: 14px;
}
html:not(.sp) .mod #gnav #nav-menu button:hover:before {
  width: 10px;
}
.mod #gnav #nav-menu.is-show:after {
  width: 18px !important;
  margin-top: -17px;
  transform: rotate(45deg);
}
.mod #gnav #nav-menu.is-show button:before {
  width: 0 !important;
}
.mod #gnav #nav-menu.is-show button:after {
  margin-top: -17px;
  transform: rotate(-45deg);
}

.mod #gnav #nav-search {right: 270px;}
.mod #gnav #nav-search span:after {
  margin-top: 0;
  background-image: url(../images/icon_link.png);
  background-position-x: -192px;
  background-position-y: -144px;
  background-size: 480px 240px;
}

.mod #gnav #nav-request {right: 0;}
.mod #gnav #nav-contact {right: 90px;}
.mod #gnav #nav-estimate {right: 180px;}
.mod #gnav #nav-tel {display: none;}

.mod .nav-btn:not(#nav-menu):not(#nav-tel):not(#nav-search) {
  background-color: #fff;
}
html:not(.sp) .mod .nav-btn:not(#nav-menu):not(#nav-tel):not(#nav-search) > *:hover {
  opacity: .8;
}
.mod .nav-btn[id^="nav-contact"] > * {
  background-color: #be0014 !important;
}
.mod .nav-btn[id^="nav-contact"] span:after {
  background-image: url("../images/icon/icon_contact.png");
  background-size: 24px;
  opacity: .8;
}
.mod .nav-btn[id^="nav-request"] > * {
  background-color: #9f0019 !important;
}
.mod .nav-btn[id^="nav-request"] span:after {
  background-image: url("../images/icon/icon_request.png");
  background-size: 24px;
  opacity: .8;
}
.mod .nav-btn[id^="nav-estimate"] > * {
  background-color: #e80018 !important;
}
.mod .nav-btn[id^="nav-estimate"] span:after {
  left: calc(50% - 14px);
  width: 28px;
  height: 28px;
  background-image: url("../images/icon/icon_estimate.png");
  background-size: 27px;
  opacity: .8;
}

.mod header .h_corp_logo {
  position: absolute;
  right: 270px;
  top: 0;
  height: 100%;
  display: flex;
  align-items: center;
  margin-left: auto;
  padding: 0 15px;
}
.mod header #gnav .h_corp_logo a {
  display: block;
  width: 160px;
  height: auto;
}
.mod header .h_corp_logo .logo-blk {
  display: none;
}
html:not(.sp) .mod header:hover .h_corp_logo .logo-blk,
.level3 .mod header .h_corp_logo .logo-blk,
.menu-on .mod header .h_corp_logo .logo-blk,
.is-scroll .mod header .h_corp_logo .logo-blk {
  display: block;
}
html:not(.sp) .mod header:hover .h_corp_logo .logo-wh,
.level3 .mod header .h_corp_logo .logo-wh,
.menu-on .mod header .h_corp_logo .logo-wh,
.is-scroll .mod header .h_corp_logo .logo-wh {
  display: none;
}

html:not(.sp) .mod header:hover #gnav a,
html:not(.sp) .mod header:hover #gnav button,
.level3 .mod header #gnav a,
.level3 .mod header #gnav button,
.menu-on .mod header #gnav a,
.menu-on .mod header #gnav button,
.is-scroll .mod #gnav a,
.is-scroll .mod #gnav button {
  color: #000;
}
html:not(.sp) .mod header:hover #gnav li.nav-btn a,
html:not(.sp) .mod header:hover #gnav li.nav-btn button,
.level3 .mod header #gnav li.nav-btn a,
.level3 .mod header #gnav li.nav-btn button,
.menu-on .mod header #gnav li.nav-btn a,
.menu-on .mod header #gnav li.nav-btn button,
.is-scroll .mod #gnav > ul li.nav-btn a,
.is-scroll .mod #gnav > ul li.nav-btn button {
  color: #555;
}
html:not(.sp) .mod header:hover #gnav li.nav-btn a,
.level3 .mod header #gnav li.nav-btn a,
.menu-on .mod header #gnav li.nav-btn a,
.is-scroll .mod #gnav > ul li.nav-btn a {
  color: #fff;
}
.mod header #gnav #nav-menu.is-show:after,
.mod header #gnav #nav-menu.is-show button:before,
.mod header #gnav #nav-menu.is-show button:after,
html:not(.sp) .mod header:hover #gnav #nav-menu:after,
html:not(.sp) .mod header:hover #gnav #nav-menu button:before,
html:not(.sp) .mod header:hover #gnav #nav-menu button:after,
.level3 .mod header #gnav #nav-menu:after,
.level3 .mod header #gnav #nav-menu button:before,
.level3 .mod header #gnav #nav-menu button:after,
.menu-on .mod header #gnav #nav-menu:after,
.menu-on .mod header #gnav #nav-menu button:before,
.menu-on .mod header #gnav #nav-menu button:after,
.is-scroll .mod #gnav #nav-menu:after,
.is-scroll .mod #gnav #nav-menu button:before,
.is-scroll .mod #gnav #nav-menu button:after {
  background-color: rgba(0,0,0,.5);
}
.mod header #gnav #nav-search.is-show span:after,
html:not(.sp) .mod header:hover #gnav #nav-search span:after,
.level3 .mod header #gnav #nav-search span:after,
.menu-on .mod header #gnav #nav-search span:after,
.is-scroll .mod #gnav #nav-search span:after {
  background-position-y: -120px;
}
html:not(.sp) .mod header #gnav p.nav-btn a:hover,
html:not(.sp) .mod header #gnav p.nav-btn button:hover,
.mod header #gnav p.nav-btn.is-show a,
.mod header #gnav p.nav-btn.is-show button {
  color: #555;
  background-color: #f7f4f0;
}

.mod #header-menu,
.mod #header-search {
  display: none;
  position: fixed;
  left: 0;
  top: 90px;
  width: 100%;
  z-index: 1;
}
.mod #header-menu > .unit {
  position: relative;
  display: flex;
  padding: 50px 0;
  border-top: 1px solid #e5e5e5;
  background-color: #fff;
}
.mod #header-menu > .unit:before,
.mod #header-menu > .unit:after {
  content: "";
  position: absolute;
  display: block;
  top: 0;
  width: 1px;
  height: 100%;
  background-color: #e5e5e5;
}
.mod #header-menu > .unit:before {
  left: 25%;
}
.mod #header-menu > .unit:after {
  left: 50%;
}

.mod #header-menu a {
  text-align: left;
  line-height: 1.5;
  transition: .2s ease-out;
}
.mod #header-menu li a {
  color: #555 !important;
}
html:not(.sp) .mod #header-menu a:hover {
  opacity: .55;
}
html:not(.sp) .mod #header-menu li a:hover {
  opacity: .7;
}
.mod #header-menu p {
  color: #000;
  margin-bottom: 0;
  font-size: 1rem;
  font-weight: bold;
}
.mod #header-menu p:not(:first-of-type) {
  margin-top: 3vh;
}
.mod #header-menu .link-icon a {
  display: inline-block;
  font-size: 1rem;
}
.mod #header-menu p a span {
  font-size: 0.75rem;
}
.mod #header-menu .category-links {
  width: 25%;
  padding: 0 2vw 0 3vw;
}
.mod #header-menu .category-links li a {
  font-size: 0.88rem;
}
.mod #header-menu .category-links ul {
  margin-top: 1.5vh;
}
.mod #header-menu .category-links li {
  margin-bottom: 1vh;
  line-height: 1;
}
.mod #header-menu .category-links li > a > span {
  max-width: calc(100% - 50px);
}
.mod #header-menu .category-reform {
  width: 50%;
  padding: 0 3vw;
}
.mod #header-menu .category-reform ul {
  display: flex;
  flex-wrap: wrap;
}
.mod #header-menu .category-reform li {
  width: 33.333%;
}
.mod #header-menu .category-reform li.pack-light {
  order: 1;
}
.mod #header-menu .category-reform li a {
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  height: 70px;
  padding-left: 48px;
  font-size: 0.81rem;
}
.mod #header-menu .category-reform li a:before {
  content: "";
  position: absolute;
  left: 0;
  width: 40px;
  height: 40px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: .3;
}
.mod #header-menu .category-reform li.mansion a:before {
  background-image: url("../images/icon/icon_mansion_blk.png");
}
.mod #header-menu .category-reform li.recycle a:before {
  background-image: url("../images/icon/icon_recycle_blk.png");
}
.mod #header-menu .category-reform li.hiclass a:before {
  background-image: url("../images/icon/icon_hiclass_blk.png");
}
.mod #header-menu .category-reform li.tower a:before {
  background-image: url("../images/icon/icon_tower_blk.png");
}
.mod #header-menu .category-reform li.house a:before {
  background-image: url("../images/icon/icon_house_blk.png");
}
.mod #header-menu .category-reform li.old a:before {
  background-image: url("../images/icon/icon_old_blk.png");
}
.mod #header-menu .category-reform li.duplex a:before {
  background-image: url("../images/icon/icon_duplex_blk.png");
}
.mod #header-menu .category-reform li.parts a:before {
  background-image: url("../images/icon/icon_parts_blk.png");
}
.mod #header-menu .category-reform li.pack a:before {
  background-image: url("../images/icon/icon_pack_blk.png");
}
.mod #header-menu .category-reform li.pack-light a:before {
  background-image: url("../images/icon/icon_pack_light_blk.png");
}
.mod #header-menu .category-reform li.medical a:before {
  background-image: url("../images/icon/icon_medical_blk.png");
}
.mod #header-menu .category-reform li.asset a:before {
  background-image: url("../images/icon/icon_asset_blk.png");
}
.mod #header-menu .category-reform li.estimate a:before {
  background-image: url("../images/icon/icon_estimate_blk.png");
}
.mod #header-menu .category-reform li.reform3d a:before {
  background-image: url("../images/icon/icon_reform3d.png");
  left: -22px;
  width: 62px;
  background-size: 100% auto;
  opacity: 1;
}
.mod #header-menu .category-reform li a span {
  align-self: flex-start;
  font-size: 0.63rem;
}

.mod #header-menu .trigger-sub:not(.link-icon) {
  pointer-events: none;
}

.mod #header-search form {
  display: flex;
  justify-content: center;
  align-items: center;
  height: calc(100vh - 90px);
  max-height: 300px;
  border-top: 1px solid #e5e5e5;
  background-color: #fff;
}
.mod #header-search form > * {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 760px;
  padding: 15px;
}
.mod #header-search form input[type="text"] {
  width: auto;
  margin: 0;
  padding: 12px 12px 11px 12px;
  flex: 1 0 auto;
}
.mod #gnav #header-search form button {
  width: 117px;
  height: 50px;
  color: #fff;
  font-size: 1rem;
  letter-spacing: .1em;
  align-items: center;
  justify-content: center;
  background-color: #000;
}
.mod #gnav #header-search form button:before {
  content: "";
  display: block;
  width: 24px;
  height: 24px;
  margin-right: 5px;
  background-image: url(../images/icon_link.png);
  background-position-x: -192px;
  background-position-y: -144px;
  background-size: 480px 240px;
}

.mod #overlay {
  position: fixed;
  left: 0;
  top: 120px;
  width: 100%;
  height: 0;
  opacity: 0;
  background-color: rgba(0,0,0,.6);
  transition: opacity .2s linear, height 0s linear .2s;
}
.menu-on .mod #overlay {
  height: calc(100vh - 90px);
  opacity: 1;
  transition: opacity .2s linear, height 0s linear 0s;
}
.is-scroll .mod #overlay,
.menu-on .mod #overlay {
  top: 90px;
}

.mod #bottombar {
  display: none;
}
.mod #bottombar {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 70px;
  transform: translate3d(0, 0, 0);
  transition: transform .3s ease-in-out;
  z-index: 10001;
}
.mod #bottombar.is-hide {
  transform: translate3d(0, 70px, 0);
}
.mod #bottombar ul {
  display: flex;
  height: 70px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.mod #bottombar ul li {
  width: 25%;
  height: 100%;
  margin: 0;
  padding: 0;
}
.mod #bottombar ul li:before {content: none;}
.mod #bottombar .nav-btn > * {
  align-items: center;
  font-size: 0.625rem !important;
  background-color: #3d4041;
}
.mod #bottombar .nav-btn span {letter-spacing: 0;}
.mod #bottombar .nav-btn a {padding-top: 4px;}
.mod #bottombar .nav-btn a span {
  position: relative;
  display: block;
  height: auto;
  padding-top: 32px;
  line-height: 1.4;
  text-align: center;
}
.mod #bottombar #nav-event-b span:after {
  background-image: url("../images/icon/icon_event.png");
  background-size: 24px;
  opacity: .5;
}
.mod #bottombar #nav-tel-b a,
.mod #bottombar #nav-office-b a {
  border-left: 1px solid rgba(255,255,255,.1);
}
.mod #bottombar #nav-office-b span:after {
  background-image: url("../images/icon/icon_office.png");
  background-size: 24px;
  opacity: .5;
}
.mod #bottombar #nav-tel-b span:after {
  background-image: url("../images/icon/icon_tel.png");
  background-size: 24px;
  opacity: .5;
}



@media screen and (max-width: 1439px) {
  .mod #header-menu p a {
    font-size: 0.94rem;
  }
}

@media screen and (min-width: 1366px) {
}

@media screen and (max-width: 1279px) {
  .mod #gnav > ul {
    padding-left: 2vw;
  }
  .mod #gnav > ul li:not(.nav-btn) a {
    padding: 4px 15px 0;
    /*font-size: 0.875rem;*/
  }
}

@media screen and (min-width: 1200px) {
  .mod #gnav > ul li:not(.nav-btn) a span br {
    display: none;
  }
  
  .mod #header-menu,
  .mod #header-search {
    top: 120px;
    transition: top .2s linear;
  }
  .is-scroll .mod #header-menu,
  .is-scroll .mod #header-search {
    top: 90px;
  }

}

@media screen and (max-width: 1199px), print {
  .mod #gnav > ul {
    padding-left: 0;
  }
  .mod #gnav > ul li:not(.nav-btn) a {
    padding: 4px 1.166vw 0;
    font-size: 1.166vw;
  }
}

@media screen and (max-width: 959px) {
  .mod header,
  .mod header .logo,
  .mod #gnav > ul {
    height: 90px;
  }
  .mod #header-menu,
  .mod #header-search {
    top: 90px;
  }
  .mod #header-menu,
  .mod #header-search form {
    height: calc(100vh - 90px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .mod #gnav .nav-btn {
    width: 70px !important;
  }
  .mod #gnav #nav-search {right: 210px;}
  .mod #gnav #nav-menu {right: 140px;}
  .mod #gnav #nav-contact {right: 70px;}
  /* .mod #gnav #nav-estimate {right: 140px;} */
  .mod #gnav ul {
    margin: 0;
  }

  .mod #header-menu > .unit {
    padding-top: 30px;
    padding-bottom: 20px;
    margin-bottom: 100px;
  }

  .mod #header-menu .category-reform li {
    width: 50%;
  }
  .mod #header-menu .category-reform li a {
    height: 60px;
  }

  .mod header .h_corp_logo {
    right: 210px;
    padding: 0 10px;
  }
  .mod header #gnav .h_corp_logo a {
    width: 118px;
  }
}

@media screen and (min-width: 768px) and (max-width: 959px) {
  .mod header .logo {
    width: 150px;
    padding-left: 10px;
  }
  .mod header .logo > * {
    width: 110px;
  }
  .mod #gnav {
    width: calc(100% - 210px);
  }
  .mod #gnav > ul {
    padding-right: calc(210px + 135px);
  }
}

@media screen and (min-width: 768px) {

  .mod header .logo,
  .mod #gnav > ul {
    -webkit-transition: height .2s linear;
    transition: height .2s linear;
  }

  .is-scroll .mod header,
  .is-scroll .mod header .logo,
  .is-scroll .mod #gnav > ul {
    height: 90px;
  }

}

@media screen and (max-width: 869px) {
  .mod #gnav > ul li:not(.nav-btn) {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .mod header,
  .is-scroll .mod header {
    height: 60px;
  }
  .mod header .logo {
    width: auto;
    height: 60px;
    margin-left: 0;
    padding-left: 15px
  }
  .mod header .logo > * {
    width: 126px;
  }

  .mod #gnav {
    width: calc(100% - 165px);
  }
  .mod #gnav > ul {
    display: none;
  }
  .mod #gnav .nav-btn {
    width: 60px !important;
  }
  .mod .nav-btn a span {
    width: 100%;
    height: auto;
    padding-top: 32px;
  }
  .mod header #gnav #nav-search {display: none;}
  .mod .nav-btn a,
  .mod .nav-btn button {
    font-family: 'Open Sans', sans-serif !important;
    font-weight: 300;
    letter-spacing: .1em;
  }
  .mod .nav-btn a span,
  .mod .nav-btn button span {
    padding-top: 30px;
  }
  .mod #gnav #nav-menu {right: 0;}
  .mod #gnav #nav-menu:after {margin-top: -16px;}
  .mod #gnav #nav-menu button:before {margin-top: -9px;}
  .mod #gnav #nav-menu button:after {margin-top: -2px;}
  .mod #gnav #nav-menu.is-show:after {margin-top: -10px;}
  .mod #gnav #nav-menu.is-show button:after {margin-top: -10px;}

  .mod #gnav #nav-tel {
    display: block;
    right: 60px;
  }
  .mod #gnav #nav-tel span:after {
    background-image: url("../images/icon/icon_tel.png");
    background-size: 23px;
    top: 2px;
  }
  html:not(.sp) .mod header:hover #gnav #nav-tel span:after,
  .level3 .mod header #gnav #nav-tel span:after,
  .menu-on .mod header #gnav #nav-tel span:after,
  .is-scroll .mod header #gnav #nav-tel span:after {
    background-image: url("../images/icon/icon_tel_gray.png");
  }

  .mod header .h_corp_logo {
    right: 60px;
  }

  .mod #header-menu,
  .mod #header-search {
    top: 60px;
  }
  .mod #header-menu,
  .mod #header-search form {
    height: calc(100vh - 60px);
  }

  .mod #header-menu > .unit {
    flex-direction: column;
    padding: 0 4vw 4vw 4vw;
    margin-bottom: 150px;
  }
  .mod #header-menu > .unit:before,
  .mod #header-menu > .unit:after {
    content: none;
  }

  .mod #header-menu p {
    font-size: 0.94rem;
    font-weight: normal;
    border-top: 1px solid #e5e5e5;
  }
  .mod #header-menu p:not(:first-of-type) {
    margin-top: 0;
  }
  .mod #header-menu p a {
    display: block;
    font-size: 0.94rem;
  }
  .mod #header-menu .category-links {
    width: 100%;
    padding: 0;
    order: 2;
  }
  .mod #header-menu .category-links ul {
    margin: 0;
  }
  .mod #header-menu .category-links ul,
  .mod #header-menu .category-links li {
    margin-bottom: 0;
  }
  .mod #header-menu .category-links li:not(:first-child) {
    border-top: 1px solid #e5e5e5;
  }
  .mod #header-menu .category-links a {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    height: 60px;
  }
  .mod #header-menu .category-links li a {
    height: 55px;
  }
  .mod #header-menu .category-links .link-icon a:after {
    margin-right: 4vw;
  }
  .mod #header-menu .category-links li.link-icon a:after {
    margin-right: 0;
  }
  .mod #header-menu .category-links .trigger-sub.link-icon a:after {
    content: none;
  }
  .mod #header-menu .category-links a span {
    margin-right: auto;
    flex: 1 0 auto;
  }
  .mod #header-menu .category-reform {
    width: 100%;
    padding: 0;
    order: 1;
  }
  .mod #header-menu .category-reform > p:first-of-type {
    border-top: none;
  }
  .mod #header-menu .category-reform ul {
    padding: 15px 0;
  }
  .mod #header-menu .category-reform li.pack,
  .mod #header-menu .category-reform li.pack-light {
    width: 100%;
    order: 0;
  }
  .mod #header-menu .trigger-sub {
    position: relative;
    display: flex;
    width: 100%;
    align-items: center;
    height: 60px;
    cursor: pointer;
    pointer-events: all !important;
  }
  .mod #header-menu .trigger-sub span {
    position: relative;
    display: flex;
    width: 100%;
    height: 60px;
    align-items: center;
  }
  .mod #header-menu .trigger-sub.link-icon span {
    width: 60px;
  }
  .mod #header-menu .trigger-sub span::before,
  .mod #header-menu .trigger-sub span::after {
    content: "";
    position: absolute;
    right: 5vw;
    top: 50%;
    width: 13px;
    height: 1px;
    background: #000;
    z-index: 2;
    transition: all .3s;
  }
  .mod #header-menu .trigger-sub span::before {
    transform: rotate(90deg);
  }
  .mod #header-menu .trigger-sub span::after {
    transform: rotate(0deg);
    opacity: 1;
  }
  .mod #header-menu .trigger-sub.is-show span::before {
    transform: rotate(180deg);
  }
  .mod #header-menu .trigger-sub.is-show span::after {
    opacity: 0;
  }
  .mod #header-menu .links-sub {
    position: relative;
    display: none;
    margin: 0;
    padding: 0 4vw;
    background-color: #f6f3ef;
  }
  .mod #header-menu .trigger-sub:after {
    content: "";
    position: absolute;
    right: 5vw;
    bottom: -12px;
    border-right: 9px solid transparent;
    border-bottom: 12px solid #f6f3ef;
    border-left: 9px solid transparent;
    opacity: 0;
    transition: .2s linear;
  }
  .mod #header-menu .trigger-sub.is-show:after {
    bottom: 0;
    opacity: 1;
  }

  .mod #header-menu .category-reform li.reform3d a:before {
    left: 0;
    width: 36px;
    background-image: url("../images/icon/icon_reform3d_sp.png");
    opacity: 1;
  }

  .mod #overlay {
    top: 60px;
  }
  .menu-on .mod #overlay {
    height: calc(100vh - 60px);
  }

  .mod #bottombar {
    display: block;
    transition: transform .3s ease-out;
  }
  .mod #bottombar.is-hide ~ #pagetop #btn-pagetop.show {
    -webkit-transform: translate3d(0, -65px, 0);
    transform: translate3d(0, -65px, 0);
  }
}

@media screen and (max-width: 374px) {
  .mod #bottombar #nav-contact-b span{
    width: 50px;
    margin: 0 auto;
    padding-top: 25px;
  }
}


/*---------------------------------------------
	フッター
  ---------------------------------------------*/

.mod footer {
  margin: 0 0 0 60px;
  padding: 50px 0 30px 0;
  background-color: #f7f4f0;
}

#footer-link {
  margin: 0 0 50px;
  padding: 0 0 30px;
  border-bottom: 1px solid rgba(0,0,0,0.07);
}

.mod footer .logo {
  display: flex;
  align-items: center;
  margin: 15px 0 30px;
}
.mod footer .logo a {
  width: 166px;
}
.mod footer .logo .note {
  flex: 1;
  margin: 0 0 0 40px;
  padding: 0;
  font-size: 0.81rem;
}
.mod footer .logo .note:before {
  content: none;
}
.mod footer nav {
  width: 100%;
  margin-right: auto;
  flex: 1 0 auto;
}
.mod footer ul {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
}
.mod footer ul li {
  margin: 0;
  padding: 0;
}
.mod footer ul li:before {content: none;}
.mod footer ul li.separator {
  padding-left: 1.5em;
  border-left: 1px solid rgba(0,0,0,.15);
}
.mod footer a {
  color: #555;
  text-decoration: none;
}
html:not(.sp) .mod footer a:hover {
  color: #888;
}
.mod footer .link-icon a:after,
.mod footer a .link-icon:after {
  background-position-y: -120px !important;
}

.mod footer #footer-nav01 {
  margin-bottom: 30px;
}
.mod footer #footer-nav01 li {
  margin-right: 1.5em;
  font-size: 0.94rem;
}
.mod footer #footer-nav02 {
  margin-bottom: 5px;
}
.mod footer #footer-nav02 li {
  margin-right: 1.3vw;
  margin-bottom: 5px;
  font-size: 0.81rem;
}
.mod footer #copyright {
  width: 100%;
  margin-bottom: 0;
  color: #999;
  font-size: 0.81rem;
  order: 3;
}

@media screen and (max-width: 1199px), print {
}
@media screen and (max-width: 767px) {
  .mod footer {
    display: block;
    margin: 0;
    padding: 25px 0 100px;
    overflow: hidden;
  }

  #footer-link {
    margin: -25px 0 40px;
    padding: 0;
  }
  #footer-link li {
    margin-bottom: 0;
  }
  #footer-link li:last-child {
    border-bottom: 0 none;
  }
  #footer-link li a {
    padding: 12px 0;
  }
  #footer-link li a:after {
    content: none;
  }

  .mod footer .logo {
    display: block;
    width: auto;
    margin-top: 0;
    margin-bottom: 25px;
  }
  .mod footer .logo a {
    display: block;
    margin: 0 auto;
  }
  .mod footer .logo .note {
    margin: 15px 0 0;
  }
  .mod footer nav {
    max-width: none;
  }
  .mod footer ul li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid rgba(0,0,0,.1);
  }
  .mod footer ul li.separator {
    padding-left: 0;
    border-left: none;
  }
  .mod footer .link-icon a:after {
    position: absolute;
    right: 0;
    top: calc(50% - 12px);
  }
  .mod footer #footer-nav01 {
    margin-bottom: 0;
    border-top: 1px solid rgba(0,0,0,.1);
  }
  .mod footer #footer-nav01 li {
    width: 100%;
    margin-right: 0;
    font-size: 1rem;
  }
  .mod footer #footer-nav01 li a {
    display: block !important;
    padding: 9px 0;
  }
  .mod footer #footer-nav02 {
    width: calc(100% + 4vw);
    margin: 0 -4vw 25px 0;
  }
  .mod footer #footer-nav02 li {
    width: calc(50% - 4vw);
    margin-right: 4vw;
    margin-bottom: 0;
    font-size: 0.75rem;
  }
  .mod footer #footer-nav02 li a {
    display: block;
    padding: 12px 0;
  }
  .mod footer #copyright {
    margin-bottom: 0;
    font-size: 0.75rem;
    text-align: center;
  }
}


/*---------------------------------------------
	サイドメニュー
  ---------------------------------------------*/
.mod #side-nav {
  position: fixed;
  left: -260px;
  top: 0;
  width: 260px;
  height: 100%;
  font-size: 0.81rem;
  line-height: 1.38;
  background-color: #3d4041;
  transition: left .3s ease-in-out;
  z-index: 10001;
}
.mod #side-nav:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  background-color: rgba(255,255,255,.15);
}
.mod #side-nav .logo {
  position: relative;
  justify-content: center;
  display: flex;
  width: 260px;
  height: 120px;
  z-index: 10;
}
.mod #side-nav .logo > * {
  display: block;
  width: 150px;
  height: 30px;
  margin: 0;
  text-indent: -9999px;
  background: url("../images/logo.png") no-repeat left center;
  background-size: contain;
  align-self: center;
}
.mod #side-nav h2.heading-en {
  display: none;
}
.mod #side-nav h2.heading-en,
.mod #side-nav h2.heading-en .txt-en {
  color: #fff;
}
.mod #side-nav h2.heading-en .txt-en:after {
  background-color: #fff;
}
.mod #side-nav button {
  position: absolute;
  right: -60px;
  top: 0;
  width: 60px;
  height: 100%;
  margin: 0;
  padding: 0;
  color: #fff;
  font-size: 0.88rem;
  letter-spacing: .5em;
  text-align: center;
  border: 0;
  outline: none;
  background-color: #3d4041;
  cursor: pointer;
}
.mod #side-nav button span {
  position: relative;
  display: inline-block;
  margin-right: 4px;
  padding: 30px 0;
  line-height: 1;
  text-align: center;
  vertical-align: middle;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}
.mod #side-nav button span:before{
  content: "";
  position: absolute;
  top: 0;
  left: calc(50% - 4px);
  width: 8px;
  height: 8px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
}
.mod #side-nav ul {
  display: flex;
  flex-wrap: wrap;
  width: 220px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.mod #side-nav ul li {
  width: 50%;
  margin: 50px 0 0;
  padding: 0;
}
.mod #side-nav ul li:before {content: none;}
.mod #side-nav ul li a {
  display: block;
  width: 100%;
  padding: 45px 0 5px 0;
  color: #fff;
  text-align: center;
  text-decoration: none;
  background-color: transparent;
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 40px;
  transition: opacity .2s linear;
  opacity: .7;
}
.mod #side-nav ul li.mansion a {
  background-image: url("../images/icon/icon_mansion.png");
}
.mod #side-nav ul li.house a {
  background-image: url("../images/icon/icon_house.png");
}
.mod #side-nav ul li.medical a {
  background-image: url("../images/icon/icon_medical.png");
}
.mod #side-nav ul li.asset a {
  background-image: url("../images/icon/icon_asset.png");
}
.mod #side-nav ul li.recycle a {
  background-image: url("../images/icon/icon_recycle.png");
}
.mod #side-nav ul li.hiclass a {
  background-image: url("../images/icon/icon_hiclass.png");
}
.mod #side-nav ul li a span {
  font-size: 0.63rem;
}
html:not(.sp) .mod #side-nav ul li a:hover {
  opacity: 1;
}
.mod #side-nav.is-show {
  left: 0;
}
.mod #side-nav.is-show button span::before{
  left: calc(50% - 2px);
  transform: scale(-1,1) rotate(45deg);
}

@media screen and (max-width: 959px) {
  .mod #side-nav .logo {
    height: 90px;
  }
}

@media screen and (max-width: 767px) {
  .mod #side-nav {
    position: relative;
    left: 0;
    width: auto;
    padding: 50px 0 35px 0;
    font-size: 1rem;
    z-index: auto;
  }
  .mod #side-nav:after {
    content: none;
  }
  .mod #side-nav .logo,
  .mod #side-nav button {
    display: none;
  }
  .mod #side-nav h2.heading-en {
    display: block;
  }
  .mod #side-nav ul {
    width: 100%;
  }
  .mod #side-nav ul li {
    display: flex;
    height: 80px;
    margin: 0;
  }
  .mod #side-nav ul li a {
    padding: 0 0 0 60px;
    text-align: left;
    background-position: left 12px center;
    align-self: center;
  }
}



/*---------------------------------------------
	page-title
  ---------------------------------------------*/
.mod #page-title {
	position: relative;
	width: 100%;
  color: #fff;
	background-color: #f7f4f0;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  overflow: hidden;
}
#page-title:before,
#page-title:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
}
#page-title:before {
  height: 100%;
  background: rgba(0,0,0,.3);
}
#page-title:after {
  height: 300px;
  background: linear-gradient(to bottom, rgba(0, 0, 0, .4) 0, rgba(0, 0, 0, 0) 300px);
}
.level3 .mod #page-title {
  color: #555;
}
.level3 .mod #page-title:before,
.level3 .mod #page-title:after {content: none;}

.mod #page-title .row {
	padding: 120px 4.25vw 100px;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
  z-index: 2;
}
.level3 .mod #page-title .row {
  padding-bottom: 30px;
}
.mod #page-title .heading {
  display: table-cell;
  width: 100vw;
  height: 160px;
  padding: 40px 0 0;
  color: #fff;
  font-size: 2rem;
  line-height: 1.4;
  vertical-align: middle;
}
.level3 .mod #page-title .heading {
  height: 130px;
  color: #000;
  padding-top: 20px;
}
.mod #page-title .heading .txt-en {
  display: block;
  font-size: 2.75rem;
  letter-spacing: .3em;
  line-height: 1.2;
}
.mod #page-title .heading .txt-en + .sub {
  display: block;
  margin-top: 5px;
  font-size: 1.13rem;
}
.mod #page-title .panel-horizontal {
  margin: 0 0 30px;
  background-color: transparent;
  box-shadow: none;
}
.mod #page-title .panel-horizontal .heading {
  line-height: 1.6;
}
.mod #page-title .panel-horizontal .txt {
  padding: 0 0 0 60px;
}
.mod #page-title .panel-horizontal .txt .label {
  float: none;
}
.mod #page-title .panel-horizontal .txt .label span {
  margin-left: 0;
}
.mod #page-title .panel-horizontal .txt .heading {
  display: block;
  width: auto;
  height: auto;
  margin: 10px 0 20px;
  padding: 0;
  font-size: 1.75rem;
}
.mod #page-title .panel-horizontal .txt .date {
  margin: 0 0 20px;
  color: #555;
  font-size: 0.94rem;
}
.mod #page-title .panel-horizontal .txt .text-tag {
  margin-bottom: 0;
  color: #555;
  font-size: 0.94rem;
}
.mod #page-title .sub {
  display: block;
  margin-left: 2px;
  margin-bottom: 5px;
  font-size: 1.25rem;
}

@media screen and (max-width: 1409px) {

  .mod #page-title .panel-horizontal .txt {
    padding-left: 4.25vw;
  }

}

@media screen and (max-width: 959px) {
  .mod #page-title .row {
    padding-top: 90px;
  }
  .mod #page-title .panel-horizontal .txt .heading,
  .mod #page-title .panel-horizontal .txt .date {
    margin: 0 0 20px;
    margin-bottom: 15px;
  }

}

@media screen and (max-width: 767px) {
  .mod #page-title .row {
    padding: 60px 4vw 70px 4vw;
  }
  .level3 .mod #page-title .row {
    padding-bottom: 20px;
  }
  .mod #page-title .heading {
    height: 80px;
    padding: 20px 0 0;
    font-size: 1.38rem;
  }
  .level3 .mod #page-title .heading {
    padding-top: 10px;
    height: 80px;
  }
  .mod #page-title .heading .txt-en {
    font-size: 1.68rem;
  }
  .mod #page-title .heading .txt-en + .sub {
    margin-bottom: -30px;
    font-size: 0.81rem;
  }
  .mod #page-title .heading .sub {
    margin-left: 0;
    font-size: 1rem;
  }
  .mod #page-title .panel-horizontal {
    display: flex;
    flex-direction: column-reverse;
    margin-bottom: -30px;
    overflow: visible;
  }
  .mod #page-title .panel-horizontal .txt {
    padding: 0 0 10px;
  }
  .mod #page-title .panel-horizontal .txt .heading {
    margin: 5px 0 10px;
    font-size: 1.25rem;
  }
  .mod #page-title .panel-horizontal .txt .date,
  .mod #page-title .panel-horizontal .txt .text-tag {
    margin: 0 0 10px;
    font-size: 0.88rem;
  }
  .mod #page-title .panel-horizontal .img {
    margin-left: -4vw;
    margin-right: -4vw;
  }

}

/*---------------------------------------------
	breadcrumb
  ---------------------------------------------*/
.mod #breadcrumb {
  position: relative;
  z-index: 1;
  margin-top: 25px;
}
.mod #breadcrumb ul,
.mod #breadcrumb ol {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 1.4;
}
.mod #breadcrumb li {
  display: inline;
  margin: 0 0 10px 0;
  color: #fff;
  font-size: 0.81rem;
  line-height: 1.4;
}
.level3 .mod #breadcrumb li {
  color: #000;
}
.mod #breadcrumb li:before {
  content: "";
  position: absolute;
  display: block;
  top: 4px;
  left: 4px;
  width: 8px;
  height: 8px;
  padding: 0;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  border-radius: 0;
  background: transparent;
  transform: rotate(45deg);
  opacity: 0.5;
}
.level3 .mod #breadcrumb li:before {
  border-color: #3d4041;
}
.mod #breadcrumb li:first-child {padding-left: 0;}
.mod #breadcrumb li:first-child:before {content: none;}
.mod #breadcrumb li:last-child {font-weight: bold;}
.mod #breadcrumb li a {
  color: #fff;
  text-decoration: none;
}
.level3 .mod #breadcrumb li a {
  color: #555;
}
html:not(.sp) .mod #breadcrumb li a:hover {
  text-decoration: underline;
}


@media screen and (max-width: 1199px), print {
}
@media screen and (max-width: 767px) {
  .mod #breadcrumb {
    margin-top: 15px;
  }
}


/*---------------------------------------------
	bottom banner
  ---------------------------------------------*/
.mod #bottom-banner {
  padding-bottom: 30px;
}

.mod #bottom-banner.bg-gray {
  border-bottom: 0 none;
}

.mod .banner-example .slider {
  padding-bottom: 50px;
}

@media screen and (max-width: 1199px), print {
  .mod .banner-example .slider {
    padding-bottom: 40px;
  }
}

@media screen and (max-width: 1199px) and (min-width: 768px), print {
  .mod .panel-example .panel-covered .heading ~ p,
  .mod .banner-example .panel-covered .heading ~ p {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .mod .banner-example .slider {
    padding-bottom: 0px;
  }

  .mod #bottom-banner.banner-example {
    padding-bottom: 5px;
  }
}


/*---------------------------------------------
	bottom contact
  ---------------------------------------------*/
.mod .contact-box {
  background-color: #f7f4f0;
}
.mod .contact-box .no-gutter {
  margin-bottom: 0;
}
.mod .contact-box.bottom {
  border-bottom: 1px solid rgba(0,0,0,0.07);
}
.mod .contact-box:not(.bottom) {
  padding: 30px;
}
.mod .contact-box:not(.bottom) .no-gutter  {
  justify-content: center;
}
.mod .contact-box:not(.bottom) .col1-2 {
  display: flex;
/*  flex-direction: column;*/
  justify-content: center;
  flex-wrap: wrap;
  padding: 30px;
}
.mod .contact-box.bottom .col1-2 {
  padding: 80px 60px 60px 0;
}
.mod .contact-box.bottom .col1-2:last-child {
  padding: 80px 0 60px 60px;
}
.mod .contact-box .col1-2 > :last-child {
  margin-bottom: 0 !important;
}
.mod .contact-box.bottom .col1-2:nth-child(even) {
  border-left: 1px solid rgba(0,0,0,0.07);
}
.mod .contact-box.bottom .row > *:first-child:not(.col-set) {
  padding-top: 40px;
}
.mod .contact-box.bottom * + .col-set .col1-2 {
  padding-top: 20px !important;
}
.mod .contact-box.bottom * + .col-set .col1-2:nth-child(even) {
  border-left: none;
}
.mod .contact-box:not(.bottom) .col1-2 > * {
  width: 100%
}
.mod .contact-box:not(.bottom) .col1-2 > .btn {
  flex-wrap: wrap;
  align-items: center;
}
.mod .contact-box .heading {
  font-size: 1.13rem;
}
.mod .contact-box .tel {
  font-size: 2.5rem !important;
}
.mod .contact-box .btn {
  margin-bottom: 20px;
}
.mod .contact-box .btn a {
  margin-bottom: 0;
  padding: 21px 0 20px 0;
  font-size: 1.25rem;
  background-color: #e50124;
  transition: background-color .2s linear;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
/*
.mod .contact-box.bottom .btn a {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
*/
html:not(.sp) .mod .contact-box .btn a:hover {
  background-color: #ff2d4d;
  opacity: 1;
}
.mod .contact-box.bottom .btn a span:before {
  content: "";
  display: inline-block;
  width: 45px;
  height: 45px;
  margin-right: 12px;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 45px;
}
.mod .contact-box.bottom .btn.request a {
  background-color: #bc001d;
}
html:not(.sp) .mod .contact-box.bottom .btn.request a:hover {
  background-color: #db2541;
}


@media screen and (max-width: 1409px), print {

  /* ----- タブ ----- */

  .mod .row .tab .tab-element {
    padding-left: 4.25vw;
    padding-right: 4.25vw;
  }

  .mod .contact-box.bottom .col1-2 {
    padding: 80px 4.25vw 60px 0;
  }
  .mod .contact-box.bottom .col1-2:last-child {
    padding: 80px 0 60px 4.25vw;
  }
}


@media screen and (max-width: 1199px), print {
  .mod .contact-box:not(.bottom) {
    padding: 20px;
  }
  .mod .contact-box:not(.bottom) .col1-2 {
    padding: 20px;
  }
  .mod .contact-box.bottom .col1-2,
  .mod .contact-box.bottom .col1-2:last-child {
    padding-top: 60px;
    padding-bottom: 40px;
  }
}

@media screen and (min-width: 768px) and (max-width: 959px) {
  .mod .contact-box .tel {
    font-size: 3.6vw !important;
  }
  .mod .contact-box .tel.free:before {
    width: 6.5vw;
    height: 4vw;
  }
}

@media screen and (max-width: 767px) {
  .mod .contact-box:not(.bottom) {
    padding: 15px 4vw;
  }
  .mod .contact-box:not(.bottom) .col1-2 {
    padding: 15px 0;
  }
  .mod .contact-box.bottom {
    padding: 5px 0 0;
  }
  .mod .contact-box.bottom .col1-2,
  .mod .contact-box.bottom .col1-2:last-child {
    padding: 20px 0 15px;
  }
  .mod .contact-box.bottom .col1-2:nth-child(even) {
    border-left: 1px none;
    border-top: 1px solid rgba(0,0,0,0.07);
  }
  .mod .contact-box.bottom * + .col-set .col1-2 {
    padding-top: 20px !important;
  }
  .mod .contact-box .btn {
    margin-bottom: 15px;
  }
  .mod .contact-box .btn a {
    padding: 15px 0 14px 0;
    font-size: 1rem;
  }
  .mod .contact-box.bottom .btn a {
    box-shadow: none;
  }
  .mod .contact-box.bottom .btn a span:before {
    width: 30px;
    height: 30px;
    background-size: 30px;
  }
  .mod .contact-box .tel {
    font-size: 2rem !important;
  }
  .mod .contact-box .tel.free:before {
    width: 50px;
    height: 30px;
  }
  .mod .contact-box.bottom .row > p {
    font-size: 0.94rem;
  }
}

@media screen and (max-width: 359px) {
  .mod .contact-box .tel {
   font-size: 1.63rem !important;
  }
}



/*---------------------------------------------
	メイン
  ---------------------------------------------*/

.mod h2.heading-en {
  margin: 0 0 50px;
  color: #666;
  font-size: 1.13rem;
  letter-spacing: .05em;
  line-height: 1.5;
}
.mod h2.heading-en .txt-en {
  position: relative;
  display: block;
  margin: 0 0 20px;
  padding: 0 0 10px 0;
  color: #000;
  font-size: 2em;
  letter-spacing: .3em;
}
.mod h2.heading-en .txt-en:after {
  content: "";
  position: absolute;
  left: calc(50% - 30px);
  bottom: 0;
  width: 60px;
  height: 1px;
  background-color: #000;
}
.mod .txt-white h2.heading-en .txt-en:after {
  background-color: #fff;
}

@media screen and (max-width: 767px) {
  .mod h2.heading-en {
    margin-bottom: 30px;
    font-size: 1rem;
  }
  .mod h2.heading-en .txt-en {
    font-size: 1.68rem;
  }
}

.mod .panel-example {
  width: calc(100% + 10px);
  margin-right: -10px;
}
.mod .panel-example:after {
  content: "";
  display: block;
  clear: both;
}
.mod .panel-example .panel-covered {
  float: left;
  width: calc(33.33333333% - 10px);
  margin: 10px 10px 0 0;
}
/*
.mod .panel-example .panel-covered .txt.bottom {padding-top: 0;}
*/
.mod .panel-example.first-hero .panel-covered:first-child .heading {font-size: 1.25rem;}

@media screen and (min-width: 768px) {
  .mod .panel-example.first-hero .panel-covered:first-child {width: calc(66.66666667% - 10px);}
  .mod .panel-example.first-hero .panel-covered:first-child:before,
  .mod .panel-example.first-hero .panel-covered:first-child > a:before {padding-top: calc(75% + 2px)}
  .mod .panel-example.first-hero .panel-covered:nth-of-type(4) {clear: both;}

  .mod .panel-example.pc-column3 .panel-covered:nth-of-type(n+4) {display: none;}
}
@media screen and (max-width: 767px) {
  .mod .panel-example {
    display: flex;
    flex-wrap: wrap;
  }
  .mod .panel-example .panel-covered {
    float: none;
    width: calc(50% - 8px);
    margin: 8px 8px 0 0;
  }
  .mod .panel-example.first-hero .panel-covered:first-child {
    width: calc(50% - 8px);
  }
  .mod .panel-example:not(.sp-slide) .panel-covered .txt {
    padding: 30px 10px 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.4) 30px);
  }
  .mod .panel-example .panel-covered .heading,
  .mod .panel-example.first-hero .panel-covered:first-child .heading {
    font-size: 0.86rem;
  }
  .mod .panel-example:not(.sp-slide) .panel-covered .heading,
  .mod .panel-example.first-hero:not(.sp-slide) .panel-covered:first-child .heading {
    margin-bottom: 10px;
  }
  .mod .panel-example.sp-slide {
    display: block;
    width: 100%;
    margin: 10px 0 0;
  }
  .mod .panel-example.sp-slide .panel-covered,
  .mod .panel-example.first-hero.sp-slide .panel-covered:first-child {
    width: 100%;
    margin: 0;
  }
  .mod .panel-example.sp-slide .panel-covered .heading {font-size: 1.06rem;}
  .mod .panel-example.sp-column8 .panel-covered:nth-of-type(n+9) {display: none;}
}

/* ----- アコーディオンパネル ----- */
.mod dl.panel-accordion dt {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 90px;
  padding: 10px 60px !important;
  color: inherit;
  font-weight: normal;
  line-height: 1.6;
  border-bottom: 1px solid #dcdcdc;
  cursor: pointer;
  transition: all .3s;
}
.mod dl.panel-accordion dt span {
  position: relative;
}
.mod dl.panel-accordion dt::before,
.mod dl.panel-accordion dt::after {
  content: "";
  position: absolute;
  right: 30px;
  top: 50%;
  width: 19px;
  height: 1px;
  background: #000;
  z-index: 2;
  transition: all .3s;
}
.mod dl.panel-accordion dt::before {
  transform: rotate(90deg);
}
.mod dl.panel-accordion dt::after {
  transform: rotate(0deg);
  opacity: 1;
}
.mod dl.panel-accordion dt.is-show::before {
	transform: rotate(180deg);
}
.mod dl.panel-accordion dt.is-show::after {
  opacity: 0;
}
.mod dl.panel-accordion dd {
  position: relative;
  display: none;
  width: 100%;
  padding: 0;
  background: #f7f4f0;
}
.mod dl.panel-accordion dd > * {
  padding: 30px 60px;
}
.mod dl.panel-accordion dd > *:last-child {
  margin-bottom: 0 !important;
}

.mod dl.panel-accordion.faq dt {
  padding: 10px 60px 10px 80px;
}
.mod dl.panel-accordion.faq dd > * {
  padding-left: 100px;
}
.mod dl.panel-accordion.faq dt span:before,
.mod dl.panel-accordion.faq dd:before {
  position: absolute;
  color: #000;
  font-size: 2.25em;
  font-family: 'Lusitana', serif !important;
  line-height: 1;
}
.mod dl.panel-accordion.faq dt span:before {
  content: "Q";
  left: -55px;
  top: -.25em;
}
.mod dl.panel-accordion.faq dd:before {
  content: "A";
  left: 45px;
  top: 30px;
}

@media screen and (max-width: 1409px), print {
  .mod dl.panel-accordion dt {
    padding: 10px 4.25vw !important;
  }
  .mod dl.panel-accordion dd > * {
    padding: 30px 4.25vw;
  }
}

@media screen and (min-width: 768px) {
  .mod dl.panel-accordion.pc-static dt {
    pointer-events: none;
  }
  .mod dl.panel-accordion.pc-static dt::before,
  .mod dl.panel-accordion.pc-static dt::after {
    content: none;
  }
  .mod dl.panel-accordion.pc-static dd {
    display: block !important;
  }
}

@media screen and (max-width: 767px) {
  .mod dl.panel-accordion dt {
    min-height: 70px;
    padding-left: 4vw !important;
    padding-right: calc(4vw + 20px) !important;
  }
  .mod dl.panel-accordion dt[class^="bg-"]::before,
  .mod dl.panel-accordion dt[class*=" bg-"]::before,
  .mod dl.panel-accordion dt[class^="bg-"]::after,
  .mod dl.panel-accordion dt[class*=" bg-"]::after {
    right: 15px;
  }

  .mod dl.panel-accordion dd {
    padding: 0;
  }
  .mod dl.panel-accordion dd > * {
    padding: 15px 4vw;
  }
  .mod dl.panel-accordion dt::before,
  .mod dl.panel-accordion dt::after {
    right: 0;
    width: 15px;
  }

  .mod dl.panel-accordion.faq dt span:before,
  .mod dl.panel-accordion.faq dd:before {
    font-size: 1.6em;
  }
  .mod dl.panel-accordion.faq dt {
    padding-left: 40px;
    padding-right: 36px;
  }
  .mod dl.panel-accordion.faq dt span:before {
    left: -40px;
    top: 0;
  }
  .mod dl.panel-accordion.faq dd:before {
    left: 15px;
    top: 20px;
  }
  .mod dl.panel-accordion.faq dd > * {
    padding-left: 50px;
  }
}

/* ----- MAP埋め込み ----- */
.mod .gmap {
  position : relative;
  height : 0;
  padding-bottom : 42.74%;
  margin-bottom: 20px;
  overflow : hidden;
}
.mod .gmap.wide {
  padding-bottom : 83%;
}

.mod .gmap iframe,
.mod .gmap object,
.mod .gmap embed{
  position : absolute;
  top : 0;
  left : 0;
  width : 100%;
  height : 100%;
}
@media screen and (max-width: 767px) {
  .mod .gmap {
    margin-bottom: 15px;
  }
}

.mod .related-links {
  margin-top: 50px;
  padding: 40px 0;
  border-top: 1px solid #e5e5e5;
}
.mod .related-links + .btn.large {
  margin-top: 0;
}

.mod #banner-3d {
  position: relative;
  background-color: #1a1e21;
  overflow: hidden;
}
.mod #banner-3d a {
  display: block;
  text-align: center;
  transition: opacity .2s linear;
}
html:not(.sp) .mod #banner-3d a:hover {
  opacity: .7;
}

@keyframes opacity {
from {opacity: 0;}
to {opacity: 1;}
}
