@charset "UTF-8";
/* #Default
   -------------------------------------------------------------------------- */
/**
  * ブラウザの持っているスタイルの一部リセット
  */
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td, figure {
  margin: 0;
  padding: 0;
  font-weight: normal; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

ul, ol {
  list-style: none; }

fieldset, img {
  border: 0; }

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal; }

/* ===================
  画像余白クリア
  ===================*/
img {
  font-size: 0;
  line-height: 0;
  vertical-align: top; }

/* ===================
共通変数
===================*/
/* ===================
ブレークポイント
===================*/
/* #Base
   -------------------------------------------------------------------------- */
/**
* Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
* 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
* 基本的にclass属性は使用しません。
*/
html {
  /**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
  box-sizing: border-box; }

*,
*:before,
*:after {
  box-sizing: inherit; }

html {
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%; }
  @media only screen and (max-width: 767px) {
    html {
      font-size: 39.37%; } }

body {
  font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-size: 1.4em;
  color: #231815;
  text-align: justify;
  text-justify: inter-ideograph; }

#scroll_area_Off {
  overflow: hidden; }

/* ===================
リンク
===================*/
a {
  outline: none; }

a:link {
  text-decoration: none;
  color: #000; }

a:visited {
  text-decoration: none;
  color: #000; }

a:hover {
  text-decoration: underline;
  color: #000; }

a:active {
  text-decoration: none;
  color: #000; }

a:hover img {
  opacity: 0.7; }

/* -----------------------------------------------------------------------------
   #Box
   -------------------------------------------------------------------------- */
/*
  Box系(display,width,height,margin,padding,float等)の汎用クラス
*/
/* -----------------------------------------------------------------------------
   #Display
   -------------------------------------------------------------------------- */
.u-dsp_none {
  display: none !important; }

.u-dsp_block {
  display: block !important; }

.u-dsp_inline-block {
  display: inline-block !important; }

.u-dsp_tbl {
  display: table !important; }

.u-dsp_tbl-cell {
  display: table-cell !important; }

.u-flx_wrap {
  display: flex !important;
  flex-wrap: wrap !important; }

.u-flx_nowrap {
  display: flex !important;
  flex-wrap: nowrap !important; }

.u-flx_space-between {
  display: flex !important;
  justify-content: space-between !important; }

.u-flx_align-item-center {
  align-items: center !important; }

@media print, screen and (min-width: 768px) {
  .u-flx_nowrap_pc {
    display: flex !important;
    flex-wrap: nowrap !important; }
  .u-flx_space-between_pc {
    display: flex !important;
    justify-content: space-between !important; } }

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

.u-flt_left {
  float: left !important; }

.u-flt_right {
  float: right !important; }

@media print, screen and (min-width: 768px) {
  .u-flt_left_pc {
    float: left !important; }
  .u-flt_right_pc {
    float: right !important; } }

/* -----------------------------------------------------------------------------
   #Margin
   -------------------------------------------------------------------------- */
.u-m10 {
  margin: 10px !important; }

.u-mt10 {
  margin-top: 10px !important; }

.u-mt20 {
  margin-top: 20px !important; }

.u-mt30 {
  margin-top: 30px !important; }

.u-mt40 {
  margin-top: 40px !important; }

.u-mt50 {
  margin-top: 50px !important; }

.u-mt60 {
  margin-top: 60px !important; }

.u-mt100 {
  margin-top: 100px !important; }

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

.u-mb10 {
  margin-bottom: 10px !important; }

.u-mb20 {
  margin-bottom: 20px !important; }

.u-mb30 {
  margin-bottom: 30px !important; }

.u-mb40 {
  margin-bottom: 40px !important; }

.u-mb50 {
  margin-bottom: 50px !important; }

.u-mb60 {
  margin-bottom: 60px !important; }

.u-mr10 {
  margin-right: 10px !important; }

.u-mr20 {
  margin-right: 20px !important; }

.u-mr30 {
  margin-right: 30px !important; }

.u-ml10 {
  margin-left: 10px !important; }

.u-ml20 {
  margin-left: 20px !important; }

.u-ml30 {
  margin-left: 30px !important; }

@media only screen and (max-width: 767px) {
  .u-m10_sp {
    margin: 10px !important; }
  .u-mt0_sp {
    margin-top: 0px !important; }
  .u-mt10_sp {
    margin-top: 10px !important; }
  .u-mt20_sp {
    margin-top: 20px !important; }
  .u-mt30_sp {
    margin-top: 30px !important; }
  .u-mt40_sp {
    margin-top: 40px !important; }
  .u-mt50_sp {
    margin-top: 50px !important; }
  .u-mt60_sp {
    margin-top: 60px !important; }
  .u-mb0_sp {
    margin-bottom: 0 !important; }
  .u-mb10_sp {
    margin-bottom: 10px !important; }
  .u-mb20_sp {
    margin-bottom: 20px !important; }
  .u-mb30_sp {
    margin-bottom: 30px !important; }
  .u-mb40_sp {
    margin-bottom: 40px !important; }
  .u-mb50_sp {
    margin-bottom: 50px !important; }
  .u-mb60_sp {
    margin-bottom: 60px !important; }
  .u-mr10_sp {
    margin-right: 10px !important; }
  .u-mr20_sp {
    margin-right: 20px !important; }
  .u-mr30_sp {
    margin-right: 30px !important; }
  .u-ml0_sp {
    margin-left: 0 !important; }
  .u-ml10_sp {
    margin-left: 10px !important; }
  .u-ml20_sp {
    margin-left: 20px !important; }
  .u-ml30_sp {
    margin-left: 30px !important; } }

/* -----------------------------------------------------------------------------
   #Padding
   -------------------------------------------------------------------------- */
.u-p10 {
  padding: 10px !important; }

.u-pt10 {
  padding-top: 10px !important; }

.u-pt20 {
  padding-top: 20px !important; }

.u-pt30 {
  padding-top: 30px !important; }

.u-pt40 {
  padding-top: 40px !important; }

.u-pt50 {
  padding-top: 50px !important; }

.u-pt60 {
  padding-top: 60px !important; }

.u-pt70 {
  padding-top: 70px !important; }

.u-pt80 {
  padding-top: 80px !important; }

.u-pt90 {
  padding-top: 90px !important; }

.u-pt100 {
  padding-top: 100px !important; }

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

.u-pb20 {
  padding-bottom: 20px !important; }

.u-pb30 {
  padding-bottom: 30px !important; }

.u-pb40 {
  padding-bottom: 40px !important; }

.u-pb50 {
  padding-bottom: 50px !important; }

.u-pb60 {
  padding-bottom: 60px !important; }

.u-pl10 {
  padding-left: 10px !important; }

.u-pl20 {
  padding-left: 20px !important; }

.u-pl30 {
  padding-left: 30px !important; }

.u-pl50 {
  padding-left: 50px !important; }

.u-pl90 {
  padding-left: 90px !important; }

.u-pr10 {
  padding-right: 10px !important; }

.u-pr20 {
  padding-right: 20px !important; }

.u-pr30 {
  padding-right: 30px !important; }

@media only screen and (max-width: 767px) {
  .u-p10_sp {
    padding: 10px !important; }
  .u-pt0_sp {
    padding-top: 0px !important; }
  .u-pt10_sp {
    padding-top: 10px !important; }
  .u-pt20_sp {
    padding-top: 20px !important; }
  .u-pt30_sp {
    padding-top: 30px !important; }
  .u-pt40_sp {
    padding-top: 40px !important; }
  .u-pt50_sp {
    padding-top: 50px !important; }
  .u-pt60_sp {
    padding-top: 60px !important; }
  .u-pt70_sp {
    padding-top: 70px !important; }
  .u-pt80_sp {
    padding-top: 80px !important; }
  .u-pt90_sp {
    padding-top: 90px !important; }
  .u-pt100_sp {
    padding-top: 100px !important; }
  .u-pb10_sp {
    padding-bottom: 10px !important; }
  .u-pb20_sp {
    padding-bottom: 20px !important; }
  .u-pb30_sp {
    padding-bottom: 30px !important; }
  .u-pb40_sp {
    padding-bottom: 40px !important; }
  .u-pb50_sp {
    padding-bottom: 50px !important; }
  .u-pb60_sp {
    padding-bottom: 60px !important; }
  .u-pl0_sp {
    padding-left: 0px !important; }
  .u-pl10_sp {
    padding-left: 10px !important; }
  .u-pl20_sp {
    padding-left: 20px !important; }
  .u-pl30_sp {
    padding-left: 30px !important; }
  .u-pl90_sp {
    padding-left: 90px !important; }
  .u-pr10_sp {
    padding-right: 10px !important; }
  .u-pr0_sp {
    padding-right: 0px !important; }
  .u-pr20_sp {
    padding-right: 20px !important; }
  .u-pr30_sp {
    padding-right: 30px !important; } }

/* -----------------------------------------------------------------------------
   #Text
   -------------------------------------------------------------------------- */
/*
  テキストのスタイルを指定する汎用クラスです。
*/
/*---------------テキスト寄せ
------------------------*/
.u-text_left {
  text-align: left !important; }

.u-text_right {
  text-align: right !important; }

.u-text_center {
  text-align: center !important; }

@media only screen and (max-width: 767px) {
  .u-text_left_sp {
    text-align: left !important; }
  .u-text_right_sp {
    text-align: right !important; }
  .u-text_center_sp {
    text-align: center !important; } }

.u-serif {
  font-family: 'Noto Serif JP', "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", Meiryo, serif; }

.u-bold {
  font-weight: bold !important; }

.u-red {
  color: #870000 !important; }

.u-brown {
  color: #786C27 !important; }

.u-black {
  color: #231815 !important; }

.u-f10 {
  font-size: 1.0rem !important; }

.u-f11 {
  font-size: 1.1rem !important; }

.u-f12 {
  font-size: 1.2rem !important; }

.u-f13 {
  font-size: 1.3rem !important; }

.u-f14 {
  font-size: 1.4rem !important; }

.u-f15 {
  font-size: 1.5rem !important; }

.u-f16 {
  font-size: 1.6rem !important; }

.u-f17 {
  font-size: 1.7rem !important; }

.u-f18 {
  font-size: 1.8rem !important; }

.u-f19 {
  font-size: 1.9rem !important; }

.u-f20 {
  font-size: 2.0rem !important; }

.u-f21 {
  font-size: 2.1rem !important; }

.u-f22 {
  font-size: 2.2rem !important; }

.u-f23 {
  font-size: 2.3rem !important; }

.u-f24 {
  font-size: 2.4rem !important; }

.u-f25 {
  font-size: 2.5rem !important; }

.u-f26 {
  font-size: 2.6rem !important; }

.u-f27 {
  font-size: 2.7rem !important; }

.u-f28 {
  font-size: 2.8rem !important; }

.u-f29 {
  font-size: 2.9rem !important; }

.u-f30 {
  font-size: 3.0rem !important; }

.u-f31 {
  font-size: 3.1rem !important; }

.u-f32 {
  font-size: 3.2rem !important; }

.u-f33 {
  font-size: 3.3rem !important; }

.u-f34 {
  font-size: 3.4rem !important; }

.u-f35 {
  font-size: 3.5rem !important; }

.u-f36 {
  font-size: 3.6rem !important; }

.u-f37 {
  font-size: 3.7rem !important; }

.u-f38 {
  font-size: 3.8rem !important; }

.u-f39 {
  font-size: 3.9rem !important; }

.u-f40 {
  font-size: 4.0rem !important; }

.u-f41 {
  font-size: 4.1rem !important; }

.u-f42 {
  font-size: 4.2rem !important; }

.u-f43 {
  font-size: 4.3rem !important; }

.u-f44 {
  font-size: 4.4rem !important; }

.u-f45 {
  font-size: 4.5rem !important; }

.u-f46 {
  font-size: 4.6rem !important; }

.u-f47 {
  font-size: 4.7rem !important; }

.u-f48 {
  font-size: 4.8rem !important; }

.u-f49 {
  font-size: 4.9rem !important; }

.u-f50 {
  font-size: 5.0rem !important; }

@media only screen and (max-width: 767px) {
  .u-f10_sp {
    font-size: 1.0rem !important; }
  .u-f11_sp {
    font-size: 1.1rem !important; }
  .u-f12_sp {
    font-size: 1.2rem !important; }
  .u-f13_sp {
    font-size: 1.3rem !important; }
  .u-f14_sp {
    font-size: 1.4rem !important; }
  .u-f15_sp {
    font-size: 1.5rem !important; }
  .u-f16_sp {
    font-size: 1.6rem !important; }
  .u-f17_sp {
    font-size: 1.7rem !important; }
  .u-f18_sp {
    font-size: 1.8rem !important; }
  .u-f19_sp {
    font-size: 1.9rem !important; }
  .u-f20_sp {
    font-size: 2.0rem !important; }
  .u-f21_sp {
    font-size: 2.1rem !important; }
  .u-f22_sp {
    font-size: 2.2rem !important; }
  .u-f23_sp {
    font-size: 2.3rem !important; }
  .u-f24_sp {
    font-size: 2.4rem !important; }
  .u-f25_sp {
    font-size: 2.5rem !important; }
  .u-f26_sp {
    font-size: 2.6rem !important; }
  .u-f27_sp {
    font-size: 2.7rem !important; }
  .u-f28_sp {
    font-size: 2.8rem !important; }
  .u-f29_sp {
    font-size: 2.9rem !important; }
  .u-f30_sp {
    font-size: 3.0rem !important; }
  .u-f31_sp {
    font-size: 3.1rem !important; }
  .u-f32_sp {
    font-size: 3.2rem !important; }
  .u-f33_sp {
    font-size: 3.3rem !important; }
  .u-f34_sp {
    font-size: 3.4rem !important; }
  .u-f35_sp {
    font-size: 3.5rem !important; }
  .u-f36_sp {
    font-size: 3.6rem !important; }
  .u-f37_sp {
    font-size: 3.7rem !important; }
  .u-f38_sp {
    font-size: 3.8rem !important; }
  .u-f39_sp {
    font-size: 3.9rem !important; }
  .u-f40_sp {
    font-size: 4.0rem !important; }
  .u-f41_sp {
    font-size: 4.1rem !important; }
  .u-f42_sp {
    font-size: 4.2rem !important; }
  .u-f43_sp {
    font-size: 4.3rem !important; }
  .u-f44_sp {
    font-size: 4.4rem !important; }
  .u-f45_sp {
    font-size: 4.5rem !important; }
  .u-f46_sp {
    font-size: 4.6rem !important; }
  .u-f47_sp {
    font-size: 4.7rem !important; }
  .u-f48_sp {
    font-size: 4.8rem !important; }
  .u-f49_sp {
    font-size: 4.9rem !important; }
  .u-f50_sp {
    font-size: 5.0rem !important; } }

/* #Wrapper
   -------------------------------------------------------------------------- */
/*
	画面の最大幅を設定するクラス

*/
/*-------------------レイアウト共通
---------------------------*/
.u-wrapper {
  margin-left: auto;
  margin-right: auto; }
  @media print, screen and (min-width: 768px) {
    .u-wrapper {
      max-width: 1400px; } }
  @media only screen and (max-width: 767px) {
    .u-wrapper {
      width: 100%;
      max-width: 1400px; } }

.u-wrapper_inner {
  margin-left: auto;
  margin-right: auto; }
  @media print, screen and (min-width: 768px) {
    .u-wrapper_inner {
      padding-left: 10px;
      padding-right: 10px;
      max-width: 1400px; } }
  @media only screen and (max-width: 767px) {
    .u-wrapper_inner {
      padding-left: 10px;
      padding-right: 10px;
      width: 100%;
      max-width: 1400px; } }

.u-wrapper_inner_pc {
  margin-left: auto;
  margin-right: auto; }
  @media print, screen and (min-width: 768px) {
    .u-wrapper_inner_pc {
      max-width: 1400px;
      padding-left: 10px;
      padding-right: 10px; } }
  @media only screen and (max-width: 767px) {
    .u-wrapper_inner_pc {
      width: 100%;
      max-width: 1400px; } }

.u-wrapper_inner_sp {
  margin-left: auto;
  margin-right: auto; }
  @media print, screen and (min-width: 768px) {
    .u-wrapper_inner_sp {
      max-width: 1400px; } }
  @media only screen and (max-width: 767px) {
    .u-wrapper_inner_sp {
      width: 100%;
      max-width: 1400px;
      padding-left: 10px;
      padding-right: 10px; } }

/* #Show
   -------------------------------------------------------------------------- */
/*
PCとスマホの表示・非表示切り替え
*/
@media print, screen and (min-width: 768px) {
  .u-show_sp {
    display: none !important; } }

@media only screen and (max-width: 767px) {
  .u-show_sp {
    display: inherit; } }

@media print, screen and (min-width: 768px) {
  .u-show_pc {
    display: inherit; } }

@media only screen and (max-width: 767px) {
  .u-show_pc {
    display: none !important; } }

/* #u-fluid-img
   -------------------------------------------------------------------------- */
/*
ウィンドウ幅に合わせて画像サイズを変えるクラス

*/
.u-fluid-img {
  max-width: 100%;
  height: auto; }

@media print, screen and (min-width: 768px) {
  .u-fluid-img_pc {
    max-width: 100%;
    height: auto; } }

@media only screen and (max-width: 767px) {
  .u-fluid-img_sp {
    max-width: 100%;
    height: auto; } }

.adminTable, .plainTable, .minimumTable {
  margin: 10px 0 24px 0;
  padding: 0;
  border-collapse: collapse;
  border-top: 2px solid #888;
  border-bottom: 2px solid #888;
  border-right: 0;
  border-left: 0;
  font-size: 14px; }
  .adminTable th, .plainTable th, .minimumTable th {
    padding: 3px 5px 3px 5px;
    font-weight: normal;
    text-align: left;
    line-height: 1.3;
    border-top: 1px solid #CCC;
    border-bottom: 1px solid #CCC;
    border-right: 0;
    border-left: 0;
    background-color: #a1906c;
    color: white; }
  .adminTable td, .plainTable td, .minimumTable td {
    background-color: #fff;
    padding: 3px 3px 3px 5px;
    line-height: 1.2;
    border-top: 1px solid #CCC;
    border-bottom: 1px solid #CCC;
    border-right: 0;
    border-left: 0; }

.plainTable, .minimumTable {
  margin: 0;
  padding: 0;
  border: none; }

.minimumTable td {
  padding: 0 0 0 2px;
  border-bottom: thin silver solid;
  font-size: 11px;
  line-height: 120%;
  border: none; }

/* INPUT エレメント定義 */
input {
  font-family: "ヒラギノ角ゴ Pro W3", Hiragino Kaku Gothic Pro, "メイリオ", Meiryo, Osaka,"ＭＳ Ｐゴシック",Tahoma;
  vertical-align: middle;
  font-size: 12px;
  border: 1px solid silver; }

select {
  font-family: "ヒラギノ角ゴ Pro W3", Hiragino Kaku Gothic Pro, "メイリオ", Meiryo, Osaka,"ＭＳ Ｐゴシック",Tahoma;
  vertical-align: middle;
  font-size: 12px;
  border: 1px solid silver; }

textarea {
  font-family: "ヒラギノ角ゴ Pro W3", Hiragino Kaku Gothic Pro, "メイリオ", Meiryo, Osaka,"ＭＳ Ｐゴシック",Tahoma;
  vertical-align: middle;
  font-size: 12px;
  border: 1px solid silver; }

button {
  font-family: "ヒラギノ角ゴ Pro W3", Hiragino Kaku Gothic Pro, "メイリオ", Meiryo, Osaka,"ＭＳ Ｐゴシック",Tahoma;
  border: 1px solid silver; }

.cbx14 {
  font-size: 14px;
  margin: 0 0 0 0px;
  padding: 0 0 0 0px; }

.cbx12 {
  font-size: 12px;
  margin: 0 0 0 0px;
  padding: 0 0 0 0px; }

.cbx10 {
  font-size: 10px;
  margin: 0 0 0 0px;
  padding: 0 0 0 0px; }

.select10 {
  font-size: 10px; }

.select11 {
  font-size: 11px; }

.select12 {
  font-size: 12px; }

.select14 {
  font-size: 14px; }

.btn16 {
  font-size: 16px;
  text-align: center;
  padding-top: 1px;
  width: 100px;
  cursor: pointer; }

.btn14 {
  font-size: 14px;
  text-align: center;
  padding-top: 1px;
  width: 100px;
  cursor: pointer; }

.btn12 {
  font-family: "ヒラギノ角ゴ Pro W3", Hiragino Kaku Gothic Pro, "メイリオ", Meiryo, Osaka,"ＭＳ Ｐゴシック",Tahoma;
  font-size: 12px;
  text-align: center;
  padding-top: 1px;
  width: 100px;
  vertical-align: middle;
  cursor: pointer; }

.btn11 {
  font-size: 11px;
  margin: 0;
  padding-top: 1px;
  cursor: pointer; }

.btn10 {
  font-size: 10px;
  margin: 0;
  padding-top: 1px;
  cursor: pointer; }

.tbox14 {
  font-size: 14px;
  background-color: white;
  padding-top: 2px;
  padding-bottom: 2px;
  padding-left: 2px;
  vertical-align: middle; }

.tbox12 {
  font-size: 12px;
  background-color: #ffffff;
  padding-top: 2px;
  padding-bottom: 2px;
  padding-left: 2px;
  vertical-align: middle; }

.tbox10 {
  font-size: 10px;
  background-color: #ffffff;
  padding-top: 2px;
  padding-bottom: 2px;
  padding-left: 2px;
  vertical-align: middle; }

.rad11 {
  font-size: 11px;
  background-color: white;
  padding-top: 3px;
  padding-bottom: 3px;
  padding-left: 3px;
  height: 20px;
  vertical-align: middle; }

.rad12 {
  font-size: 12px;
  background-color: white;
  padding-top: 3px;
  padding-bottom: 3px;
  padding-left: 3px;
  height: 20px;
  vertical-align: middle; }

.rad14 {
  font-family: "ヒラギノ角ゴ Pro W3", Hiragino Kaku Gothic Pro, "メイリオ", Meiryo, Osaka,"ＭＳ Ｐゴシック",Tahoma;
  font-size: 14px;
  background-color: white;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 4px;
  height: 22px;
  vertical-align: middle; }

.tx10 {
  font-size: 10px;
  line-height: 1.5em; }

.tx10red {
  font-size: 10px;
  color: Red; }

.tx12 {
  font-size: 12px;
  line-height: 1.5em; }

.tx14 {
  font-size: 14px;
  line-height: 1.4em; }

.field-validation-error, .validation-error {
  font-size: 1rem;
  padding: 5px;
  color: #fff;
  line-height: 3;
  background-color: red;
  border-radius: 10px; }

.input-validation-error {
  border: 1px solid #fd67a4;
  background-color: #fff0f0; }

.w25 {
  width: 25px; }

.w50 {
  width: 50px; }

.w75 {
  width: 75px; }

.w100 {
  width: 100px; }

.w150 {
  width: 150px; }

.w200 {
  width: 200px; }

.w250 {
  width: 250px; }

.w300 {
  width: 300px; }

.w350 {
  width: 350px; }

.w400 {
  width: 400px; }

label.error, p.error {
  color: red; }

input.error {
  border: 1px solid red;
  background-color: #fff0f0; }

.is-hide {
  display: none; }

.loading {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(255, 255, 255, 0.7);
  z-index: 99999; }
  .loading::before {
    content: "";
    display: block;
    position: fixed;
    left: 50%;
    top: 50%;
    width: 50px;
    height: 50px;
    border-radius: 5px;
    margin-top: -15px;
    margin-left: -15px;
    background: white; }
  .loading::after {
    content: "";
    display: block;
    position: fixed;
    left: 50%;
    top: 50%;
    width: 32px;
    height: 32px;
    border-radius: 20px;
    margin-top: -10px;
    margin-left: -10px;
    border: 4px solid #60ABB9;
    border-right: 4px solid white;
    animation: rotate 1s infinite linear; }

@keyframes rotate {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }

#js_modal.is-show {
  display: block !important; }

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backdrop-filter: blur(2px);
  background-color: rgba(0, 0, 0, 0.8);
  padding: 2rem;
  z-index: 99; }

.modal_overlay {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%; }

.modal_content {
  position: relative;
  z-index: 999;
  max-width: 1200px;
  background-color: #fff;
  overflow: auto; }
  @media print, screen and (min-width: 768px) {
    .modal_content {
      padding: 40px;
      min-height: 550px;
      max-height: 100vh; } }
  @media only screen and (max-width: 767px) {
    .modal_content {
      padding: 40px 10px 10px;
      max-height: 100vh; } }

.modal_close {
  position: absolute;
  top: 0;
  line-height: 1;
  font-size: 4rem;
  text-align: right;
  color: #666;
  cursor: pointer; }
  @media print, screen and (min-width: 768px) {
    .modal_close {
      right: 10px;
      padding: 10px; } }
  @media only screen and (max-width: 767px) {
    .modal_close {
      right: 0;
      padding: 0 10px; } }
  .modal_close:hover {
    opacity: 0.7; }

header {
  display: flex;
  background-color: #182987; }
  @media print, screen and (min-width: 768px) {
    header {
      min-height: 73px; } }
  @media print, screen and (min-width: 1400px) {
    header {
      height: 73px; }
      header:before {
        display: block;
        content: "";
        width: 100%;
        height: 100%;
        background-color: #03104D; }
      header:after {
        display: block;
        content: "";
        width: 100%;
        height: 100%;
        background-color: #182987; } }
  header * {
    line-height: 1; }
  header h1 {
    padding-right: 1.5%; }
    @media print, screen and (min-width: 1400px) {
      header h1 {
        width: 373px; } }
    @media print, screen and (min-width: 768px) {
      header h1 {
        display: flex;
        align-items: center; } }
    @media only screen and (max-width: 767px) {
      header h1 {
        background: url("/images/common/bg_hLogo.png") right top no-repeat;
        background-size: cover; } }

.h_main_wrapper {
  display: flex;
  align-items: center; }
  @media print, screen and (min-width: 768px) {
    .h_main_wrapper {
      background: url("/images/common/bg_hLogo.png") right top no-repeat;
      background-size: cover; } }
  @media only screen and (max-width: 767px) {
    .h_main_wrapper {
      justify-content: space-between;
      width: 100%; } }

.h_wrapper {
  display: flex; }
  @media print, screen and (min-width: 1400px) {
    .h_wrapper {
      flex-shrink: 0;
      width: 1400px; } }
  @media only screen and (max-width: 767px) {
    .h_wrapper {
      justify-content: space-between;
      flex-wrap: wrap; } }

.h_others {
  display: flex;
  align-items: center;
  margin-left: auto; }
  @media print, screen and (min-width: 768px) {
    .h_others {
      padding-right: 10px; } }
  @media only screen and (max-width: 767px) {
    .h_others {
      display: none; } }
  .h_others a {
    margin-left: 15px; }

@media only screen and (max-width: 767px) {
  nav {
    width: 100%;
    order: 3; } }

@media print, screen and (min-width: 768px) {
  .gNav {
    font-size: 1.7rem;
    display: flex;
    justify-content: center;
    text-align: center;
    height: 100%; } }

@media only screen and (max-width: 767px) {
  .gNav {
    font-size: 2.3rem; } }

.gNav li {
  display: flex;
  align-items: center; }
  @media print, screen and (min-width: 768px) {
    .gNav li a {
      flex-shrink: 0; }
    .gNav li:after {
      display: block;
      content: url("/images/common/h_line.png"); } }

@media print, screen and (min-width: 768px) {
  .gNav a:link {
    color: #fff; }
  .gNav a:visited {
    color: #fff; }
  .gNav a:hover {
    color: #fff; }
  .gNav a:active {
    color: #fff; } }

.gNav a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 5px 15px; }
  @media print, screen and (min-width: 768px) {
    .gNav a {
      padding: 5px 5px 5px 15px; } }
  .gNav a:hover {
    text-decoration: none;
    opacity: 0.5; }

@media only screen and (max-width: 767px) {
  .gNav {
    display: none;
    background-color: #fff; }
    .gNav a, .gNav .gNav_close {
      display: block;
      padding: 15px; }
    .gNav a:hover {
      background-color: #ddd; }
    .gNav li {
      border-top: 1px solid #231815; } }

.gNav_btn {
  margin-left: 10px;
  margin-right: 10px;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  appearance: none;
  font-size: 1rem;
  text-align: center;
  color: #fff; }
  .gNav_btn img {
    margin-bottom: 5px; }
  @media print, screen and (min-width: 768px) {
    .gNav_btn {
      display: none; } }
  @media only screen and (max-width: 767px) {
    .gNav_btn {
      display: block; } }

.gNav_close {
  background-color: #182987;
  color: #fff;
  border-bottom: 1px solid #fff; }
  @media print, screen and (min-width: 768px) {
    .gNav_close {
      display: none !important; } }

footer {
  position: relative; }
  @media print, screen and (min-width: 768px) {
    footer {
      margin-top: 100px; } }
  @media only screen and (max-width: 767px) {
    footer {
      margin-top: 50px; } }
  footer * {
    line-height: 1; }
  footer > div {
    position: relative; }
  footer small {
    display: block;
    text-align: center;
    font-size: 1.5rem;
    margin: 20px 0;
    font-family: 'Noto Serif JP', "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", Meiryo, serif; }

.f_wrapper {
  display: flex;
  align-items: center; }
  @media print, screen and (min-width: 768px) {
    .f_wrapper {
      justify-content: space-around; } }
  @media only screen and (max-width: 767px) {
    .f_wrapper {
      justify-content: space-between;
      padding: 10px; } }

.f_main {
  padding: 10px 0;
  background-color: #182987;
  color: #fff; }
  @media print, screen and (min-width: 768px) {
    .f_main div {
      display: flex;
      justify-content: space-between;
      align-items: flex-end; } }
  @media only screen and (max-width: 767px) {
    .f_main div {
      display: block; } }
  @media only screen and (max-width: 767px) {
    .f_main h1 {
      margin-bottom: 10px; } }
  .f_main p {
    font-size: 1.6rem; }

@media only screen and (max-width: 767px) {
  .f_address {
    display: flex !important;
    justify-content: space-between;
    align-items: center; } }

.f_others {
  display: flex;
  align-items: center; }
  .f_others a {
    margin-left: 15px; }

.f_nav {
  font-size: 1.7rem;
  display: flex;
  text-align: center; }
  @media print, screen and (min-width: 768px) {
    .f_nav {
      justify-content: center; } }
  @media only screen and (max-width: 767px) {
    .f_nav {
      display: none; } }
  .f_nav a:link {
    color: #231815; }
  .f_nav a:visited {
    color: #231815; }
  .f_nav a:hover {
    color: #231815; }
  .f_nav a:active {
    color: #231815; }
  .f_nav li {
    display: flex;
    align-items: center; }
    .f_nav li a {
      flex-shrink: 0; }
    .f_nav li:after {
      display: block;
      content: url("/images/common/f_line.png"); }
  .f_nav a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 5px 15px; }
    @media print, screen and (min-width: 768px) {
      .f_nav a {
        padding: 5px 5px 5px 15px; } }

.pagetop {
  margin-left: 20px; }

/* #Content
   -------------------------------------------------------------------------- */
/*doc

*/
#breadcrumb li {
  display: inline-block;
  margin: 10px 0;
  font-size: 1.2rem;
  font-family: "Hiragino Kaku Gothic Pro","ヒラギノ角ゴシック Pro W3","メイリオ","Meiryo","ＭＳ Ｐゴシック","MS PGothic", sans-serif; }
  #breadcrumb li:before {
    margin: 0 8px;
    content: ">";
    color: #000; }
  #breadcrumb li:first-child:before {
    margin: 0;
    content: ''; }

#breadcrumb img {
  vertical-align: middle; }

.main_visual img {
  width: 100%; }

.ttl_blue {
  line-height: 60px;
  background-color: #182987;
  color: #fff;
  font-size: 2.7rem;
  text-align: right;
  font-family: 'Noto Serif JP', "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", Meiryo, serif; }
  @media print, screen and (min-width: 768px) {
    .ttl_blue {
      padding-right: 10px;
      width: 100%;
      max-width: 360px;
      position: relative; }
      .ttl_blue:after {
        content: "";
        position: absolute;
        left: 100%;
        top: 0;
        width: 0;
        height: 0;
        border-top: 30px solid #182987;
        border-bottom: 30px solid transparent;
        border-right: 10px solid transparent;
        border-left: 10px solid #182987; } }
  @media only screen and (max-width: 767px) {
    .ttl_blue {
      margin-bottom: 20px;
      line-height: 1;
      padding: 10px; } }

@media print, screen and (min-width: 768px) {
  .index section {
    margin-top: 60px; } }

@media only screen and (max-width: 767px) {
  .index section {
    margin-top: 30px; } }

.index .photos {
  text-align: center;
  background-color: #182987; }
  @media print, screen and (min-width: 768px) {
    .index .photos {
      margin-top: 60px; } }
  @media only screen and (max-width: 767px) {
    .index .photos {
      margin-top: 30px; } }

.slider img {
  width: 100%; }

.bx-wrapper {
  margin-bottom: 0 !important;
  box-shadow: none !important;
  border: none !important; }

@media print, screen and (min-width: 768px) {
  .advantage, .printing, .voice {
    display: flex; } }

.advantage .heading, .printing .heading, .voice .heading {
  position: relative; }
  @media print, screen and (min-width: 768px) {
    .advantage .heading, .printing .heading, .voice .heading {
      flex-shrink: 0;
      width: 32%;
      padding-right: 4%; } }

@media print, screen and (min-width: 768px) {
  .advantage .description, .printing .description, .voice .description {
    width: 66%;
    margin-left: 2%;
    max-width: 800px;
    padding-right: 10px;
    line-height: 2; } }

@media only screen and (max-width: 767px) {
  .advantage .description, .printing .description, .voice .description {
    line-height: 1.75; } }

.advantage .description a:link, .printing .description a:link, .voice .description a:link {
  color: #182987; }

.advantage .description a:visited, .printing .description a:visited, .voice .description a:visited {
  color: #182987; }

.advantage .description a:hover, .printing .description a:hover, .voice .description a:hover {
  color: #182987; }

.advantage .description a:active, .printing .description a:active, .voice .description a:active {
  color: #182987; }

.advantage .description a, .printing .description a, .voice .description a {
  display: block;
  text-align: right;
  font-size: 2rem; }

@media print, screen and (min-width: 768px) {
  .printing .heading > div {
    margin-top: 100px;
    text-align: right; } }

@media only screen and (max-width: 767px) {
  .printing .heading > div {
    display: flex;
    flex-wrap: wrap; } }

@media print, screen and (min-width: 768px) {
  .printing .heading > div figure {
    margin-bottom: 30px; } }

@media only screen and (max-width: 767px) {
  .printing .heading > div figure {
    width: 48%;
    margin: 5px 1%; } }

.printing .description p {
  color: #B95054;
  font-size: 2.5rem; }

.printing dl {
  width: 100%;
  font-family: 'Noto Serif JP', "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", Meiryo, serif; }
  @media print, screen and (min-width: 768px) {
    .printing dl {
      margin-bottom: 50px; } }
  @media only screen and (max-width: 767px) {
    .printing dl {
      margin-bottom: 30px; } }
  .printing dl > div {
    border-bottom: 1px solid #231815; }
    .printing dl > div:first-child {
      border-top: 1px solid #231815; }
    @media print, screen and (min-width: 768px) {
      .printing dl > div {
        display: flex; } }
    @media only screen and (max-width: 767px) {
      .printing dl > div {
        padding: 10px 0; } }

@media print, screen and (min-width: 768px) {
  .printing dt, .printing dd {
    padding: 10px 0; } }

.printing dt {
  flex-shrink: 0;
  font-size: 2.5rem; }
  @media print, screen and (min-width: 768px) {
    .printing dt {
      width: 200px; } }

.printing dd {
  display: flex;
  align-items: center;
  font-size: 1.8rem; }

.printing .hansoku {
  margin-bottom: 30px;
  border-top: 1px solid #231815;
  border-bottom: 1px solid #231815; }
  .printing .hansoku dt {
    width: 100%; }
  .printing .hansoku dt, .printing .hansoku dd {
    padding: 0; }
  .printing .hansoku th {
    vertical-align: top; }
    @media print, screen and (min-width: 768px) {
      .printing .hansoku th {
        width: 90px; } }
  @media only screen and (max-width: 767px) {
    .printing .hansoku table, .printing .hansoku tbody, .printing .hansoku tr, .printing .hansoku th, .printing .hansoku td {
      display: block;
      width: 100%;
      box-sizing: border-box; }
    .printing .hansoku th, .printing .hansoku td {
      padding: 5px 10px; } }

@media print, screen and (min-width: 768px) {
  .novelty {
    display: none; } }

@media only screen and (max-width: 767px) {
  .novelty {
    padding: 30px 10px;
    background: url("/images/index/bg_novelty.png") center center;
    background-size: cover; }
    .novelty h2 {
      margin-bottom: 5px;
      line-height: 1.5;
      text-align: center;
      font-size: 3.2rem;
      color: #fff;
      border-bottom: 1px solid #fff; }
    .novelty p {
      margin-bottom: 10px;
      font-size: 2.4rem;
      color: #fff; }
    .novelty img {
      display: block;
      margin: 10px auto; }
    .novelty a {
      display: block;
      margin: 30px auto; } }

.posts {
  background-color: #E7E9F3;
  padding-bottom: 30px; }
  @media print, screen and (min-width: 768px) {
    .posts {
      margin-top: 100px; } }
  @media only screen and (max-width: 767px) {
    .posts {
      margin-top: 50px; } }
  .posts > div {
    background: url("/images/index/logo_ep.png") 0 0 no-repeat;
    background-size: 235px; }
  .posts section {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto; }

.insta {
  position: relative; }
  @media print, screen and (min-width: 768px) {
    .insta {
      padding-top: 50px;
      display: flex;
      justify-content: flex-end;
      align-items: flex-start; } }
  @media only screen and (max-width: 767px) {
    .insta {
      padding: 30px 0 0;
      text-align: center; } }
  .insta h2 {
    display: flex;
    align-items: center;
    justify-content: center; }
    .insta h2 a {
      margin-right: 20px; }
    @media print, screen and (min-width: 768px) {
      .insta h2 {
        flex-shrink: 0;
        padding-right: 10px; } }
    @media only screen and (max-width: 767px) {
      .insta h2 {
        margin-bottom: 20px; } }

.snapwidget {
  position: relative;
  width: 100%; }
  @media print, screen and (min-width: 768px) {
    .snapwidget {
      width: 100%;
      max-width: 800px; } }

.information {
  background-color: #fff; }
  @media print, screen and (min-width: 768px) {
    .information {
      padding: 30px;
      display: flex; } }
  @media only screen and (max-width: 767px) {
    .information {
      padding: 30px 10px; } }
  .information h2 {
    font-family: 'Noto Serif JP', "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", Meiryo, serif; }
    @media only screen and (max-width: 767px) {
      .information h2 {
        margin-bottom: 20px; } }

.info_archive {
  font-size: 1.9rem;
  width: 100%; }
  @media print, screen and (min-width: 768px) {
    .info_archive {
      margin-left: 60px; } }
  .info_archive a:link {
    color: blue; }
  .info_archive a:visited {
    color: blue; }
  .info_archive a:hover {
    color: blue; }
  .info_archive a:active {
    color: blue; }
  .info_archive > div {
    margin-bottom: 10px; }
    @media print, screen and (min-width: 768px) {
      .info_archive > div {
        display: flex; } }
  .info_archive * {
    line-height: 1.5; }
  .info_archive dt {
    width: 100%; }
  @media print, screen and (min-width: 768px) {
    .info_archive dd {
      flex-shrink: 0;
      width: 150px;
      margin-right: 10px; } }
  .info_archive time {
    vertical-align: middle; }

.newMark {
  display: inline-block;
  padding: 1px 4px;
  font-size: 1.3rem;
  background: #F00;
  color: #fff;
  border-radius: 9px;
  vertical-align: middle;
  margin-left: 5px; }

@media print, screen and (min-width: 768px) {
  .voice {
    margin-top: 100px; } }

@media only screen and (max-width: 767px) {
  .voice {
    margin-top: 50px; } }

.voice p {
  margin-top: 10px;
  font-size: 2.5rem;
  color: #182987; }

.voice_01, .voice_02, .voice_03 {
  max-width: 1100px;
  margin: 30px auto; }
  @media print, screen and (min-width: 768px) {
    .voice_01, .voice_02, .voice_03 {
      display: flex;
      align-items: center;
      padding: 0 10px; } }
  .voice_01 > div, .voice_02 > div, .voice_03 > div {
    flex-shrink: 0;
    text-align: center; }
  .voice_01 p, .voice_02 p, .voice_03 p {
    margin-top: 10px;
    font-size: 2rem; }
  @media print, screen and (min-width: 768px) {
    .voice_01 dl, .voice_02 dl, .voice_03 dl {
      display: flex;
      align-items: center;
      line-height: 2;
      margin-left: 10px; } }
  @media only screen and (max-width: 767px) {
    .voice_01 dl, .voice_02 dl, .voice_03 dl {
      line-height: 1.75; } }
  @media print, screen and (min-width: 768px) {
    .voice_01 dl:before, .voice_02 dl:before, .voice_03 dl:before {
      content: url("/images/index/fukidashi_01.png"); } }
  @media only screen and (max-width: 767px) {
    .voice_01 dl:before, .voice_02 dl:before, .voice_03 dl:before {
      display: block;
      text-align: center;
      margin: -15px auto 0;
      content: "";
      width: 0;
      height: 0;
      border-top: 20px solid transparent;
      border-bottom: 20px solid #E1EFD8;
      border-right: 10px solid transparent;
      border-left: 10px solid transparent; } }
  .voice_01 dl > div, .voice_02 dl > div, .voice_03 dl > div {
    background-color: #E1EFD8;
    border-radius: 10px; }
    @media print, screen and (min-width: 768px) {
      .voice_01 dl > div, .voice_02 dl > div, .voice_03 dl > div {
        padding: 20px 30px 10px; } }
    @media only screen and (max-width: 767px) {
      .voice_01 dl > div, .voice_02 dl > div, .voice_03 dl > div {
        padding: 20px 15px; } }
  .voice_01 dt, .voice_02 dt, .voice_03 dt {
    font-size: 2.5rem;
    font-family: 'Noto Serif JP', "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", Meiryo, serif; }
  .voice_01 dd, .voice_02 dd, .voice_03 dd {
    font-size: 1.8rem; }

@media print, screen and (min-width: 768px) {
  .voice_02 dl {
    order: -1;
    margin-left: 0;
    margin-right: 10px; } }

@media print, screen and (min-width: 768px) {
  .voice_02 dl:before {
    content: url("/images/index/fukidashi_02.png"); } }

@media only screen and (max-width: 767px) {
  .voice_02 dl:before {
    border-bottom: 20px solid #FADBD9; } }

.voice_02 dl > div {
  order: -1;
  background-color: #FADBD9; }

@media print, screen and (min-width: 768px) {
  .voice_03 {
    margin-bottom: 80px; } }

@media print, screen and (min-width: 768px) {
  .voice_03 dl:before {
    content: url("/images/index/fukidashi_03.png"); } }

@media only screen and (max-width: 767px) {
  .voice_03 dl:before {
    border-bottom: 20px solid #DFEAF8; } }

.voice_03 dl > div {
  background-color: #DFEAF8; }

.company {
  font-family: 'Noto Serif JP', "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", Meiryo, serif; }
  @media print, screen and (min-width: 768px) {
    .company section {
      margin-bottom: 80px; } }
  @media only screen and (max-width: 767px) {
    .company section {
      margin-bottom: 30px; } }
  .company > h2 {
    text-align: center;
    font-size: 3.3rem; }
    @media print, screen and (min-width: 768px) {
      .company > h2 {
        margin: 30px auto; } }
    @media only screen and (max-width: 767px) {
      .company > h2 {
        margin: 15px auto; } }
  @media print, screen and (min-width: 768px) {
    .company .heading_wrapper {
      margin-bottom: 30px;
      position: relative;
      display: flex;
      justify-content: center; } }
  @media only screen and (max-width: 767px) {
    .company .heading_wrapper {
      margin-bottom: 15px;
      padding: 0 10px; } }
  @media print, screen and (min-width: 768px) {
    .company .heading {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center; } }
  .company .heading h2 {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto; }
    @media print, screen and (min-width: 768px) {
      .company .heading h2 {
        text-align: left; } }
    @media only screen and (max-width: 767px) {
      .company .heading h2 {
        text-align: right;
        background-color: #182987; } }

.bg_border {
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 0;
  display: block;
  margin: auto 0;
  width: 100%;
  height: 180px;
  background-color: #182987; }
  @media only screen and (max-width: 767px) {
    .bg_border {
      display: none; } }
  .bg_border:after {
    position: absolute;
    top: 0;
    right: 0;
    content: "";
    width: 68px;
    height: 100%;
    background-color: #0085D0; }
  .bg_border:before {
    position: absolute;
    top: 0;
    right: 68px;
    content: "";
    width: 0;
    height: 0;
    border-top: 90px solid transparent;
    border-bottom: 90px solid #0085D0;
    border-right: 34px solid #0085D0;
    border-left: 34px solid transparent; }

.company_wrapper, .enkaku {
  width: 100%;
  max-width: 810px;
  margin: 0 auto;
  line-height: 2;
  font-size: 1.8rem; }
  @media only screen and (max-width: 767px) {
    .company_wrapper, .enkaku {
      padding: 0 10px; } }

.kenchiku .bg_border:after {
  background-color: #E50012; }

.kenchiku .bg_border:before {
  border-bottom: 90px solid #E50012;
  border-right: 34px solid #E50012; }

.shamei .bg_border:after {
  background-color: #FDD000; }

.shamei .bg_border:before {
  border-bottom: 90px solid #FDD000;
  border-right: 34px solid #FDD000; }

.outline .bg_border:after {
  background-color: #231815; }

.outline .bg_border:before {
  border-bottom: 90px solid #231815;
  border-right: 34px solid #231815; }

.outline .photos {
  display: flex;
  justify-content: space-between;
  margin-top: 30px; }
  .outline .photos figure {
    width: 49.5%; }
  .outline .photos figcaption {
    font-size: 1.2rem;
    font-family: "Hiragino Kaku Gothic Pro","ヒラギノ角ゴシック Pro W3","メイリオ","Meiryo","ＭＳ Ｐゴシック","MS PGothic", sans-serif; }

@media only screen and (max-width: 767px) {
  .outline table, .outline tbody, .outline tr, .outline th, .outline td {
    display: block;
    width: 100%;
    box-sizing: border-box; } }

.company_tbl {
  margin: 30px auto; }
  @media only screen and (max-width: 767px) {
    .company_tbl td {
      border-bottom: 1px dashed #ccc; } }

.enkaku {
  max-width: 840px; }
  @media print, screen and (min-width: 768px) {
    .enkaku {
      display: flex; } }
  @media print, screen and (min-width: 768px) {
    .enkaku h3 {
      flex-shrink: 0;
      padding: 10px;
      border-right: 1px solid #231815; } }
  @media only screen and (max-width: 767px) {
    .enkaku td {
      border-bottom: 1px dashed #ccc; } }
  .enkaku th {
    vertical-align: top; }
    @media print, screen and (min-width: 768px) {
      .enkaku th {
        padding: 0 10px;
        width: 210px; } }

@media print, screen and (min-width: 768px) {
  .googlemap {
    margin-top: 60px; } }

@media only screen and (max-width: 767px) {
  .googlemap {
    margin-top: 30px; } }

.googlemap iframe {
  width: 100%;
  height: 400px; }

.machine {
  font-size: 2rem;
  line-height: 2;
  font-family: 'Noto Serif JP', "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "メイリオ", Meiryo, serif; }
  @media print, screen and (min-width: 768px) {
    .machine section {
      margin-top: 60px; } }
  @media only screen and (max-width: 767px) {
    .machine section {
      margin-top: 30px; } }
  .machine .gallery {
    max-width: 1200px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; }
    @media print, screen and (min-width: 768px) {
      .machine .gallery {
        margin: 60px auto; } }
    @media only screen and (max-width: 767px) {
      .machine .gallery {
        margin: 30px auto; } }
    .machine .gallery figure {
      margin-bottom: 5px; }
      @media print, screen and (min-width: 768px) {
        .machine .gallery figure {
          width: 33%; } }
      @media only screen and (max-width: 767px) {
        .machine .gallery figure {
          width: 49%; } }

.insatsuki .description {
  max-width: 950px; }
  @media print, screen and (min-width: 768px) {
    .insatsuki .description {
      margin: 30px auto; } }
  @media only screen and (max-width: 767px) {
    .insatsuki .description {
      margin: 15px auto; } }

@media print, screen and (min-width: 768px) {
  .insatsuki dl {
    display: flex;
    justify-content: space-around; } }

.insatsuki dl > div {
  padding: 10px 0 10px 20px;
  border-left: 1px solid #231815; }
  @media print, screen and (min-width: 768px) {
    .insatsuki dl > div {
      margin-top: 30px; } }
  @media only screen and (max-width: 767px) {
    .insatsuki dl > div {
      margin-top: 15px; } }

.insatsuki dt {
  font-family: "Hiragino Kaku Gothic Pro","ヒラギノ角ゴシック Pro W3","メイリオ","Meiryo","ＭＳ Ｐゴシック","MS PGothic", sans-serif;
  font-weight: bold; }

@media print, screen and (min-width: 768px) {
  .atokako {
    display: flex;
    align-items: flex-start; } }

@media print, screen and (min-width: 768px) {
  .atokako .description {
    display: flex;
    margin-left: 50px; } }

.atokako ul:first-child {
  margin-right: 50px; }
