@charset "utf-8";
/* ######################################################################################

   背景

###################################################################################### */
.bgGray {
	background-image: url('../img/contents/bg_01.jpg');
	background-repeat: repeat;
	background-size:auto;
	}
.bgGray.auto {
	position:relative;
	z-index:1;
	}
.bgGray.auto:after {
	position:absolute;
	content:"";
	background-color:#FFF;
	width: 100%;
    height: 230px;
    bottom: 0px;
    z-index: -1;
	}
.bgGray.over {
	position:relative;
	z-index:1;
	}
.bgGray.over:after {
	position:absolute;
	content:"";
	background-color:#FFF;
	width: 100%;
    height: 420px;
    top: 0px;
    z-index: -1;
	}

@media print, screen and (min-width: 768px) {
	.bgGray.over:after {height: 420px;}
}
@media screen and (max-width: 767px) {
	.bgGray.over:after {height: 560px;}
}



/* ######################################################################################

　table

###################################################################################### */
/* ====================================================
　基本設定
==================================================== */
table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}

caption {
  margin-bottom: 0.75em;
  text-align: left;
  font-size: 80%;
  font-weight: bold;
}

th, td {
  border-color: #cccccc;
  padding: 0.5em;
  text-align: left;
  font-weight: normal;
}

@media print, screen and (min-width: 768px) {
  th {
    background: #f7f7f7;
    padding: 0.5em;
    vertical-align: top;
    font-size: 14px;
  }

  td {
    padding: 0.5em;
    font-size: 14px;
  }
}
@media screen and (max-width: 767px) {
  th {
    background: #f7f7f7;
    padding: 0.5em;
  }

  td {
    padding: 0.5em;
  }
}
/* ====================================================
　囲み
==================================================== */
.borderHorizon th, .borderHorizon td {
  border-width: 1px 0;
}
.borderHorizon tr + tr td, .borderHorizon tr + tr th {
  border-top-width: 0;
}

.borderBox th, .borderBox td {
  border-width: 1px;
}
.borderBox tr + tr td, .borderBox tr + tr th {
  border-top-width: 0;
}
.borderBox th + th,
.borderBox th + td,
.borderBox td + td,
.borderBox td + td {
  border-left-width: 0;
}

/* ====================================================
　線種
==================================================== */
.borderSolid th {
  border-style: solid;
}
.borderSolid td {
  border-style: solid;
}
.borderSolid td:before {
  border-style: solid;
}

.borderDotted th {
  border-style: dotted;
}
.borderDotted td {
  border-style: dotted;
}
.borderDotted td:before {
  border-style: dotted;
}

.borderDashed th {
  border-style: dashed;
}
.borderDashed td {
  border-style: dashed;
}
.borderDashed td:before {
  border-style: dashed;
}

/* ====================================================
　**のときTHをサイドに作る
==================================================== */
table.cell-xs-create td:before, table.cell-sm-create td:before, table.cell-md-create td:before, table.cell-lg-create td:before {
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  border-width: 0 1px 0 0;
  border-color: #cccccc;
  background: #eeeeee;
  width: 6em;
  height: 100%;
  padding: 0.5em;
}
table.borderHorizon.cell-xs-create td:before, table.borderHorizon.cell-sm-create td:before, table.borderHorizon.cell-md-create td:before, table.borderHorizon.cell-lg-create td:before {
  border: none;
}

@media print, screen and (max-width: 767px) {
  /* ====================================================
  　xsのときcellをBlock
  ==================================================== */
  table.xs-block {
    display: block;
  }
  table.xs-block caption, table.xs-block thead, table.xs-block tbody, table.xs-block tr, table.xs-block th, table.xs-block td {
    display: block;
  }
  table.xs-block tr {
    margin-top: 0.5em;
  }
  table.xs-block tr + tr th {
    border-top-width: 1px;
  }
  table.xs-block th {
    padding-top: 0.3em;
    padding-bottom: 0.3em;
  }
  table.xs-block th + td,
  table.xs-block td + td {
    border-top-width: 0;
  }
  table.xs-block.borderBox td {
    border-left-width: 1px;
  }
  table.cell-xs-create th {
    display: none;
  }
  table.cell-xs-create td {
    position: relative;
    overflow: hidden;
    padding-left: 7em;
  }
  table.cell-xs-create td:before {
    content: attr(title);
  }
  table.cell-xs-create td:nth-of-type(1) {
    border-top-width: 1px;
  }
}
@media print, screen and (max-width: 991px) {
  /* ====================================================
  　smのときcellをBlock
  ==================================================== */
  table.sm-block {
    display: block;
  }
  table.sm-block caption, table.sm-block thead, table.sm-block tbody, table.sm-block tr, table.sm-block th, table.sm-block td {
    display: block;
  }
  table.sm-block tr {
    margin-top: 0.5em;
  }
  table.sm-block tr + tr th {
    border-top-width: 1px;
  }
  table.sm-block th {
    padding-top: 0.3em;
    padding-bottom: 0.3em;
  }
  table.sm-block th + td,
  table.sm-block td + td {
    border-top-width: 0;
  }
  table.sm-block.borderBox td {
    border-left-width: 1px;
  }
  table.cell-sm-create th {
    display: none;
  }
  table.cell-sm-create td {
    position: relative;
    overflow: hidden;
    padding-left: 7em;
  }
  table.cell-sm-create td:before {
    content: attr(title);
  }
  table.cell-sm-create td:nth-of-type(1) {
    border-top-width: 1px;
  }
}
@media screen and (max-width: 1199px) {
  /* ====================================================
  　mdのときcellをBlock
  ==================================================== */
  table.md-block {
    display: block;
  }
  table.md-block caption, table.md-block thead, table.md-block tbody, table.md-block tr, table.md-block th, table.md-block td {
    display: block;
  }
  table.md-block tr {
    margin-top: 0.5em;
  }
  table.md-block tr + tr th {
    border-top-width: 1px;
  }
  table.md-block th {
    padding-top: 0.3em;
    padding-bottom: 0.3em;
  }
  table.md-block th + td,
  table.md-block td + td {
    border-top-width: 0;
  }
  table.md-block.borderBox td {
    border-left-width: 1px;
  }
  table.cell-md-create th {
    display: none;
  }
  table.cell-md-create td {
    position: relative;
    overflow: hidden;
    padding-left: 7em;
  }
  table.cell-md-create td:before {
    content: attr(title);
  }
  table.cell-md-create td:nth-of-type(1) {
    border-top-width: 1px;
  }
}
@media screen and (max-width: 9999px) {
  /* ====================================================
  　lgのときcellをBlock
  ==================================================== */
  table.lg-block {
    display: block;
  }
  table.lg-block caption, table.lg-block thead, table.lg-block tbody, table.lg-block tr, table.lg-block th, table.lg-block td {
    display: block;
  }
  table.lg-block tr {
    margin-top: 0.5em;
  }
  table.lg-block tr + tr th {
    border-top-width: 1px;
  }
  table.lg-block th {
    padding-top: 0.3em;
    padding-bottom: 0.3em;
  }
  table.lg-block th + td,
  table.lg-block td + td {
    border-top-width: 0;
  }
  table.lg-block.borderBox td {
    border-left-width: 1px;
  }
  table.cell-lg-create th {
    display: none;
  }
  table.cell-lg-create td {
    position: relative;
    overflow: hidden;
    padding-left: 7em;
  }
  table.cell-lg-create td:before {
    content: attr(title);
  }
  table.cell-lg-create td:nth-of-type(1) {
    border-top-width: 1px;
  }
}


/* ######################################################################################

   button

###################################################################################### */
.button {
    opacity: 1;
    display: inline-block;
    position: relative;
    -webkit-appearance: none;
    border: 1px solid #000;
    background: #fff;
    font-size: 1.4rem;
    font-weight: normal;
    color: #000000;
    vertical-align: middle;
    line-height: 1;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
  }
  .button:not(.disabled):hover {
    background: #000;
    color: #fff;
}
  .button:not(.disabled):active {
    top: 1px;
    box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.4);
  }
  .button.block {
    display: block;
    width: 100%;
  }
  .button.block + .block {
    margin-top: 0.5em;
  }
  @media print, screen and (min-width: 768px) {
    .button {
      padding: 1.25em;
      font-size: 15px;
      min-width: 280px;
    }
  }
  @media screen and (max-width: 767px) {
    .button {
      padding: 1.25em 1.5em;
      font-size: 1.4rem;
      width: 280px;
      display: block;
      margin-left: auto;
      margin-right: auto;
    }
  }
  @media print, screen and (min-width: 768px) {
    .button.small {
      padding: 1em 1.25em;
      font-size: 1.4rem;
      min-width: 160px;
    }
  }
  @media screen and (max-width: 767px) {
    .button.small {
      padding: 1em 1.25em;
      font-size: 1.4rem;
      min-width: 160px;
    }
  }
  @media print, screen and (min-width: 768px) {
    .button.large {
      padding: 1.25em 2em;
      font-size: 1.7rem;
      min-width: 340px;
    }
  }
  @media screen and (max-width: 767px) {
    .button.large {
      padding: 1.25em 1.5em;
      font-size: 1.4rem;
    }
  }
  .button.form-submit {
    -webkit-transition: background-color 0.5s ease;
    -moz-transition: background-color 0.5s ease;
    -o-transition: background-color 0.5s ease;
    transition: background-color 0.5s ease;
  }
  .button.next:not(.disabled) {
    background: #fff;
    color: #000;
    border: 1px solid #000;
  }
  .button.before:after, .button.after:after {
    margin-left: 0.5em;
  }
  .button.before:before, .button.after:before {
    margin-right: 0.5em;
  }
  .button.before:before, .button.before:after, .button.after:before, .button.after:after {
    display: inline-block;
    vertical-align: middle;
    font-family: FontAwesome;
    content: "";
    width: 1em;
    height: 1em;
  }
  .button.before.snap, .button.after.snap {
    padding-left: 2em;
    padding-right: 2em;
  }
  .button.before.snap:after, .button.before.snap:before, .button.after.snap:after, .button.after.snap:before {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
  .button.before.snap:after, .button.after.snap:after {
    right: 0.75em;
  }
  .button.before.snap:before, .button.after.snap:before {
    left: 0.75em;
  }
  .button.ico {
    /* ≫ */
    /* ≪ */
    /* 人物チーム */
    /* GoogleMaps */
  }
  .button.ico.before:before, .button.ico.after:after {
    content: "";
    width: 1em;
    height: 1em;
    background-size: contain !important;
    background: #ffffff;
  }
  .button.ico.next.before:before, .button.ico.next.after:after {
    content: "\f101";
    background: none;
  }
  .button.ico.back.before:before, .button.ico.back.after:after {
    content: "\f100";
    background: none;
  }
  .button.ico.before.before.peoples:before, .button.ico.after.after.peoples:after {
    background: url(ico-peoples.svg);
  }
  .button.ico.before.before.gmap:before, .button.ico.after.after.gmap:after {
    background: url(ico-gmap.svg);
  }
  .button.disabled {
    box-shadow: none;
    cursor: no-drop;
    background: #ddd;
    color: #bbb;
    border-color:#ddd;
  }
  .button.back {
    background: #E6E6E6;
    border-color: #E6E6E6;
    color: #000000;
  }
  .button.back:hover{
    background: #E6E6E6;
    border-color: #E6E6E6;
    color: #000000;
  }
  .button.del {
    background: #cc0000;
    color: #ffffff;
  }
  .button.black {
    background: #000000;
    color: #ffffff;
  }
  .button.black:hover {
    background: #ffffff;
    color: #000000;
  }
  .button.black.reverse {
    border: 1px solid #000000;
    background: #ffffff;
    color: #000000;
  }
  .button.red {
    background: #dc143c;
    color: #ffffff;
  }
  .button.red.reverse {
    border: 1px solid #dc143c;
    background: #ffffff;
    color: #dc143c;
  }
  .button.blue {
    background: #005bac;
    color: #ffffff;
  }
  .button.blue.reverse {
    border: 1px solid #005bac;
    background: #ffffff;
    color: #005bac;
  }
  .button.green {
    background: #3cb371;
    color: #ffffff;
  }
  .button.green.reverse {
    border: 1px solid #3cb371;
    background: #ffffff;
    color: #3cb371;
  }
  .button[class^="autoZip"] {
    background: #def1f5;
    padding: 0.5em;
    vertical-align: middle;
    margin-left: 0.5em;
  }
  
  @media print, screen and (max-width: 767px) {
    .button.xs-block {
      display: block;
      width: 100%;
      margin: 1em 0;
    }
  }
  @media print, screen and (max-width: 991px) {
    .button.sm-block {
      display: block;
      width: 100%;
      margin: 1em 0;
    }
  }
  @media screen and (max-width: 1199px) {
    .button.md-block {
      display: block;
      width: 100%;
      margin: 1em 0;
    }
  }
  @media screen and (max-width: 9999px) {
    .button.lg-block {
      display: block;
      width: 100%;
      margin: 1em 0;
    }
  }


/* アニメーション */
@media print, screen and (min-width: 768px) {
.button.swipe:not(.disabled){
  position: relative;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.42, 0, 0.58, 1);
  z-index: 3;
}
	.button.swipe:not(.disabled):before{
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 0;
    z-index: -1;
    content: '';
    color: #fff !important;
    background: #000;
    transition: all 0.4s cubic-bezier(0.42, 0, 0.58, 1);
}
}

@media screen and (max-width: 767px) {
.button.swipe:not(.disabled){
  position: relative;
  overflow: hidden;
  z-index: 3;
}
	.button.swipe:not(.disabled):before{
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 0;
    z-index: -1;
    content: '';
    color: #fff !important;
    background: #000;
}
	
}


.button.swipe:not(.disabled):hover{
  background: #fff;
  opacity: 1;
  color: #fff !important;
}
.button.swipe:not(.disabled):hover:before{
    left: 0;
    right: auto;
    width: 100%;
}


.button.black.swipe:not(.disabled):hover{
  color: #000 !important;
  background: #000;
}
.button.black.swipe:not(.disabled):before{
    color: #000 !important;
    background: #fff;
}


  /* ====================================================
      ボタンボックス
  ==================================================== */
  .buttonBox {
	  font-size: 15px;
  }
  .buttonBox p {
    text-align: center;
  }
  .buttonBox li .button {
    display: block;
    width: 100%;
  }
  .buttonBox.center .row {
    display: inline-block;
    width: 103%;
    max-width: 768px;
  }
  .buttonBox.center.single .row {
    max-width: 384px;
  }
  
  @media print, screen and (max-width: 767px) {
    .buttonBox > .row > .col-xs-12 {
      margin-top: 0.5em;
      margin-bottom: 0.5em;
    }
  }
  @media print, screen and (max-width: 991px) {
    .buttonBox > .row > .col-sm-12 {
      margin-top: 0.25em;
      margin-bottom: 0.25em;
    }
  }
  @media screen and (max-width: 1199px) {
    .buttonBox > .row > .col-md-12 {
      margin-top: 0.25em;
      margin-bottom: 0.25em;
    }
  }
  @media screen and (max-width: 9999px) {
    .buttonBox > .row > .col-lg-12 {
      margin-top: 0.25em;
      margin-bottom: 0.25em;
    }
  }


/* ######################################################################################

   contactArea

###################################################################################### */
.contactArea .tel .hours{
  margin-bottom: 0;
  font-size: 1.4rem;
  line-height: 1;
}
.contactArea .tel .number{font-size: 1.5rem;}
.contactArea .tel .number a{
  display: inline-block;
  vertical-align: middle;
  padding-left: 0.25em;
  font-size: 3.6rem;
  color: #000;
  text-decoration: none;
}

@media print, screen and (min-width: 768px) {
    .contactArea:after{
        content: "";
        display: block;
        clear: both;
    }
    .contactArea .tel{float: left;}
    .contactArea .tel .hours{padding-left: 3.5em;}

    .contactArea .tel .number a{
        display: inline-block;
        vertical-align: middle;
        padding-left: 0.25em;
        font-size: 3.6rem;
        color: #000;
        text-decoration: none;
    }
    .contactArea .form{float: right;}
}
@media screen and (max-width: 767px) {
  .contactArea .tel,
  .contactArea .form{text-align: center;}

}

.thxbox {
  text-align: center;
}



/* ######################################################################################

　表示・非表示　display

###################################################################################### */
@media print, screen and (min-width: 768px) {
  div.pc, ul.pc, ol.pc, li.pc, dl.pc, dt.pc, dd.pc {
    display: block;
  }
  div.sp, ul.sp, ol.sp, li.sp, dl.sp, dt.sp, dd.sp {
    display: none;
  }

  span.pc, img.pc, em.pc, br.pc {
    display: inline;
  }
  span.sp, img.sp, em.sp, br.sp {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  div.sp, ul.sp, ol.sp, li.sp, dl.sp, dt.sp, dd.sp {
    display: block;
  }
  div.pc, ul.pc, ol.pc, li.pc, dl.pc, dt.pc, dd.pc {
    display: none;
  }

  span.sp, img.sp, em.sp, br.sp {
    display: inline;
  }
  span.pc, img.pc, em.pc, br.pc {
    display: none;
  }
}


/* ######################################################################################

　form

###################################################################################### */
input[type="text"], input[type="password"], input[type="search"], input[type="tel"], input[type="url"], input[type="email"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="week"], input[type="time"], input[type="number"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  box-shadow: none;
  border: 1px solid #D1D1D1;
  border-radius: 3px;
  background-color: #F9F9F9;
  max-width: 100%;
  padding: 0.5em 0.5em;
  font-size: 1.4rem;
  color: #000 !important;
  font-family: "游ゴシック Medium", "YuGothic Medium", "游ゴシック", YuGothic, "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
}

form label.select select,
form textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  box-shadow: none;
  border: 1px solid #D1D1D1;
  border-radius: 3px;
  background-color: #F9F9F9;
  max-width: 100%;
  padding: 0.5em 0.5em;
  font-size: 1.4rem;
  color: #000 !important;
  font-family: "游ゴシック Medium", "YuGothic Medium", "游ゴシック", YuGothic, "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
}

input[type="text"], input[type="password"], input[type="search"], input[type="tel"], input[type="url"], input[type="email"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="week"], input[type="time"], input[type="number"] {
  height: 2.75em;
}

textarea {
  width: 100%;
  min-height: 6em;
}

label.select select {
  padding-right: 2.1em;
  line-height: 1.2;
}
label.select select:not([multiple]) {
  box-shadow: none;
  margin: 0;
}

label.select {
  display: inline-block;
  position: relative;
}
label.select:before, label.select:after {
  display: inline-block;
  position: absolute;
  font-size: 50%;
}
label.select:before {
  content: "";
  border-left: 1px solid #999999;
  right: 3em;
  height: 100%;
}
label.select:after {
  pointer-events: none;
  content: "▼";
  top: 50%;
  transform: translateY(-50%);
  right: 1em;
  color: #777777;
}
label.select select::-ms-expand {
  display: none;
}
label.select option[disabled="disabled"] {
  background: #f0f0f0;
  color: #cccccc;
}

input-placeholder {
  color: #aaa !important;
}

::-webkit-input-placeholder {
  color: #aaa !important;
}

::-moz-placeholder {
  color: #aaa !important;
}

::-ms-input-placeholder {
  color: #aaa !important;
}

-webkit-input-placeholder {
  color: #aaa !important;
}

input:-ms-input-placeholder {
  color: #aaa !important;
}

-moz-placeholder {
  color: #aaa !important;
}

:-ms-input-placeholder {
  color: #aaa !important;
}

input[type="text"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="url"]:focus, input[type="email"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="time"]:focus, input[type="number"]:focus {
  box-shadow: none;
  background: #F3F8F0;
  border: 1px solid #1D4900;
}

label.select select:focus,
textarea:focus {
  box-shadow: none;
  background: #F3F8F0;
  border: 1px solid #1D4900;
}

select:not([multiple]):focus {
  box-shadow: none;
}

input + label, input + span {
  cursor: pointer;
}
/*
input:not(.df)[type="checkbox"], input:not(.df)[type="radio"] {
  display: none;
}
*/
input:not(.df)[type="checkbox"] + label,
input:not(.df)[type="checkbox"] + span {
  position: relative;
  padding-left: 1.75em;
}
input:not(.df)[type="radio"] + label,
input:not(.df)[type="radio"] + span {
  position: relative;
  padding-left: 2em;
}
input:not(.df)[type="checkbox"] + label:before, input:not(.df)[type="checkbox"] + span:before, input:not(.df)[type="radio"] + label:before, input:not(.df)[type="radio"] + span:before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 0.25em;
  transform: translateY(-50%);
}
input:not(.df):not(.fa)[type="checkbox"] + label:before, input:not(.df):not(.fa)[type="checkbox"] + label:after, input:not(.df):not(.fa)[type="checkbox"] + span:before, input:not(.df):not(.fa)[type="checkbox"] + span:after, input:not(.df):not(.fa)[type="radio"] + label:before, input:not(.df):not(.fa)[type="radio"] + label:after, input:not(.df):not(.fa)[type="radio"] + span:before, input:not(.df):not(.fa)[type="radio"] + span:after {
  width: 1em;
  height: 1em;
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
input:not(.df):not(.fa)[type="checkbox"] + label:before, input:not(.df):not(.fa)[type="checkbox"] + label:after, input:not(.df):not(.fa)[type="checkbox"] + span:before, input:not(.df):not(.fa)[type="checkbox"] + span:after, input:not(.df):not(.fa)[type="radio"] + label:before, input:not(.df):not(.fa)[type="radio"] + label:after, input:not(.df):not(.fa)[type="radio"] + span:before, input:not(.df):not(.fa)[type="radio"] + span:after {
  width: 1em;
  height: 1em;
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
input:not(.df):not(.fa)[type="checkbox"] + label:before, input:not(.df):not(.fa)[type="checkbox"] + span:before {
  content: "";
  background-color: #fff;
  border: 1px solid #555555;
  width: 20px;
  height: 20px;
}
input:not(.df):not(.fa)[type="checkbox"]:checked + label:after, input:not(.df):not(.fa)[type="checkbox"]:checked + span:after {
  content: "";
  background: url(../img/contents/ico-check.svg) center no-repeat;
  background-color: #555555;
  width: 20px;
  height: 20px;
  background-size: auto;
	border: 1px solid #555555;
}
input:not(.df):not(.fa)[type="radio"] + label:before, input:not(.df):not(.fa)[type="radio"] + span:before {
  width: 1.5em;
  height: 1.5em;
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: #fff;
  border-radius: 50%;
  border: 1px solid #D5D5DF;
}
input:not(.df):not(.fa)[type="radio"]:checked + label:before, input:not(.df):not(.fa)[type="radio"]:checked + span:before{border: 2px solid #4065E0;}

input:not(.df):not(.fa)[type="radio"] + label:after, input:not(.df):not(.fa)[type="radio"] + span:after {
  width: 0.65em;
  height: 0.65em;
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 6px;
  transform: translateY(-50%);
  border-radius: 50%;
}

input:not(.df):not(.fa)[type="radio"]:checked + label:after, input:not(.df):not(.fa)[type="radio"]:checked + span:after {
  content: "";
  background: #4065E0;
}

@media screen and (max-width: 767px) {
  input:not(.df)[type="checkbox"] + label, input:not(.df)[type="checkbox"] + span, input:not(.df)[type="radio"] + label, input:not(.df)[type="radio"] + span {
    display: block;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
  }

  .mwform-radio-field > label,
  label.df {
    display: block;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
  }
}
label.file:before {
  content: "ファイルを選択";
  display: inline-block;
  border-radius: 5px;
  background: #6C003C;
  color: #ffffff;
  padding: 0.5em 1em;
}

.privacyPolicyBox {margin-top: 1em;}
.privacyPolicyBox a{font-weight: bold;}
.privacyPolicyBox a:hover{text-decoration: none;}

@media print, screen and (min-width: 768px) {
  .privacyPolicyBox {
    padding: 2em 8em 1.5em;
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 767px) {
  .privacyPolicyBox {
    padding: 1em 0;
    font-size: 1.5rem;
  }
}


.agreementBox {
  margin-top: 1em;
  text-align: center;
  background:#e9c9c9;
  font-weight: bold;
  font-size: 1.4rem;
  padding: 0.5em;
}
.agreementBox input[type="checkbox"] + label,
.agreementBox input[type="checkbox"] + span {
  display: block;
}
.agreementBox + .buttonBox {
  margin-top: 3em;
}
@media print, screen and (min-width: 768px) {
  .agreementBox input:not(.df):not(.fa)[type="checkbox"] + label, .agreementBox input:not(.df):not(.fa)[type="checkbox"] + span {
    padding: 1em;
  }
  .agreementBox input:not(.df):not(.fa)[type="checkbox"] + label::before, .agreementBox input:not(.df):not(.fa)[type="checkbox"] + span::before,
  .agreementBox input:not(.df):not(.fa)[type="checkbox"]:checked + label::after, .agreementBox input:not(.df):not(.fa)[type="checkbox"]:checked + span::after {
    left: 50%;
    transform: translate(-11.6em, -50.1%);
  }
}
@media screen and (max-width: 767px) {
  .agreementBox input:not(.df):not(.fa)[type="checkbox"] + label {
    padding: 1em 1em 1em 2.5em;
    font-size: 1.4rem;
  }
  .agreementBox input:not(.df):not(.fa)[type="checkbox"] + label::before, .agreementBox input:not(.df):not(.fa)[type="checkbox"] + span::before,
  .agreementBox input:not(.df):not(.fa)[type="checkbox"]:checked + label::after, .agreementBox input:not(.df):not(.fa)[type="checkbox"]:checked + span::after  {
    left: 1em;
  }
}

.checkConf {
  display: block;
}

.month-picker-year-table .ui-button {
  height: auto !important;
}


/* ######################################################################################

　formTable

###################################################################################### */
/* ====================================================
　入力枠サイズ
==================================================== */
.size-input-name {
  width: 22em;
}
.size-input-zip {
  width: 10em;
}
.size-input-address {
  width: 100%;
}
.size-input-tel {
  width: 22em;
}
.size-input-email {
  width: 22em;
}
.size-input-message {
  width: 100%;
}

form table {
  width: 100%;
}


@media print, screen and (min-width: 768px) {
	form .buttonBox{  margin: 5em auto 0;}
  form .tableList ul li{
    display: inline-block;
    margin-right: 2em;
  }
}

form .required:after {
  content: "必須";
  display: inline-block;
  vertical-align: middle;
  position: relative;
  top: -1px;
  background: #980000;
  margin-left: 1em;
  padding: 0.25em 0.5em;
  line-height: 1.25;
  color: #ffffff;
  font-size: 1.1rem;
}
form .select + .size-input-address,
form .size-input-address + .size-input-address,
form .size-input-address + .size-input-address {
  margin-top: 5px;
}
form .sample {
  display: block;
  line-height: 1.5;
  color: #000;
  font-size: 1.4rem;
}
@media print, screen and (min-width: 768px) {
  form .sample {
    display: inline-block;
    margin-left: 1em;
  }
}

form .sample:not(:first-child) {
  margin-top: 0.5em;
}
form .error {
 font-family: "游ゴシック Medium", "YuGothic Medium", "游ゴシック", YuGothic, "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
  display: block;
  margin: 0.2em 0 0;
  padding-left: 1em;
  text-indent: -1em;
  font-size: 1.3rem!important;
  color: #CE0000;
  font-weight: bold;
}
form .error:before {
  content: "※";
}
form > p.error{margin-bottom: 1.5em; font-size: 1.5rem!important;}

.checkConf {
  display: block;
}


/* ====================================================
　確認画面
==================================================== */
@media print, screen and (min-width: 768px) {
  .fotmmailer.confirm .buttonBox{width: 700px; margin-left: auto; margin-right: auto;}
}

/* ====================================================
　完了画面
==================================================== */
.fotmmailer.thanks .info .bold{font-weight: bold;}
.fotmmailer.thanks p{line-height: 2;}
.fotmmailer.thanks .info{
  margin: 2em 0 3em;
  background: #F9F9F9;
}

@media print, screen and (min-width: 768px) {
  .fotmmailer.thanks p{font-size: 1.7rem;}
  .fotmmailer.thanks .info{
    padding: 30px 40px;
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 767px) {
	form .buttonBox{  margin: 3em auto 0;}
  .fotmmailer.thanks p{font-size: 1.4rem;}
  .fotmmailer.thanks .info{
    padding: 1.5em;
    font-size: 1.5rem;
  }
}




/* ######################################################################################

　画像フィット　imgFitBox

###################################################################################### */
.imgFitBox.cover img, img.imgFit.cover {
  object-fit: cover;
  font-family: "object-fit:cover";
}

.imgFitBox.contain img, img.imgFit.contain {
  object-fit: contain;
  font-family: "object-fit:contain";
}

.imgFitBox.fill img, img.imgFit.fill {
  object-fit: fill;
  font-family: "object-fit:fill";
}

.imgFitBox.none img, img.imgFit.none {
  object-fit: none;
  font-family: "object-fit:none";
}

.imgFitBox.scaleDown img, img.imgFit.scaleDown {
  object-fit: scale-down;
  font-family: "object-fit:scale-down";
}



/* ######################################################################################

　画像マウスオーバーアクション

###################################################################################### */
.imageHover.zoom {
  display:block;
  overflow: hidden;
}
.imageHover.zoom figure {
  position:relative;
  overflow: hidden;
  margin: 0;
  text-align: center;
}
.imageHover.zoom figure:before{
  -webkit-transition:opacity 0.3s ease-in-out;
  -moz-transition:opacity 0.3s ease-in-out;
   -ms-transition:opacity 0.3s ease-in-out;
    -o-transition:opacity 0.3s ease-in-out;
       transition:opacity 0.3s ease-in-out;
}
.imageHover.zoom figcaption {
  -webkit-transition:transform 0.3s ease-in-out;
     -moz-transition:transform 0.3s ease-in-out;
      -ms-transition:transform 0.3s ease-in-out;
       -o-transition:transform 0.3s ease-in-out;
          transition:transform 0.3s ease-in-out;
  position:absolute;
  left:0;
  width:100%;
}
.imageHover.zoom:hover figure:before {
  content:"";
  position: absolute;
  display:block;
  z-index:5;
  background-color: rgba(0,0,0,0.1);
  top:0;
  width: 100%;
  height:100%;
  opacity: 0;
}
.imageHover.zoom figure:before {
  opacity: 1;
}
.imageHover.zoom img {
  -webkit-transition:transform 0.3s ease-in-out;
     -moz-transition:transform 0.3s ease-in-out;
      -ms-transition:transform 0.3s ease-in-out;
       -o-transition:transform 0.3s ease-in-out;
          transition:transform 0.3s ease-in-out;
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
.imageHover.zoom:hover figure img {
  -webkit-transform:scale(1.8,1.08);
     -moz-transform:scale(1.08,1.08);
      -ms-transform:scale(1.08,1.08);
       -o-transform:scale(1.08,1.08);
          transform: scale(1.08,1.08);
}


/* キャプション付き */
.imageHover.zoom.caption figure:before{
  opacity: 1;
}

.imageHover.zoom.caption figcaption {
  transform:translateY(-50%);
  top: 50%;
  z-index:6;
  text-align: center;
  color: #FFF;
  font-size: 2.0rem;
  font-weight: bold;
}
.imageHover.zoom.caption figcaption .small{
  display: block;
  margin-top: 1em;
  font-size: 1.5rem;
}


/* ######################################################################################

　ハンバーガーメニュー：meanMenu

###################################################################################### */
/* ====================================================
　3＠デフォルト　※基本的には変更しない
==================================================== */
/* ＋－のはみ出し防止 */
.meanMenuAcc ul li,
.mean-container .mean-nav ul li {
  position: relative;
  z-index: 10;
}

.meanMenuAcc ul li a.meanAcc-expand,
.mean-container .mean-nav ul li a.mean-expand {
  background: none !important;
  border: none !important;
}

.mean-container .mean-bar {
  padding: 0;
  min-height: 0;
}

.header {
  width: 100%;
  position: relative;
}

.mean-container .mean-bar {
  height: 0;
}

.meanMenuAcc ul li a,
.mean-container .mean-nav ul li a {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box;
}

.meanMenuAcc ul li a:not(.meanAcc-expand),
.mean-container .mean-nav ul li a:not(.mean-expand) {
  width: 100% !important;
}

/* 重なり順 DF
-------------------------------------*/
.header {
  z-index: 9999;
}

.mean-bar {
  z-index: 10000;
}

/* ×スタイル DF
-------------------------------------*/
.mean-container a.meanmenu-reveal.meanclose span:nth-of-type(1) {
  transform: rotate(45deg);
}

.mean-container a.meanmenu-reveal.meanclose span:nth-of-type(2) {
  opacity: 0;
}

.mean-container a.meanmenu-reveal.meanclose span:nth-of-type(3) {
  transform: rotate(-45deg);
}

/* ＋・－　スタイル DF
-------------------------------------*/
.meanMenuAcc ul li a.meanAcc-expand,
.mean-container .mean-nav ul li a.mean-expand {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box;
  padding: 0px !important;
}

.meanMenuAcc ul li a.meanAcc-expand:before,
.meanMenuAcc ul li a.meanAcc-expand:after,
.mean-container .mean-nav ul li a.mean-expand:before,
.mean-container .mean-nav ul li a.mean-expand:after {
  content: "";
  display: block;
  position: relative;
}

.meanMenuAcc ul li a.meanAcc-expand:after,
.mean-container .mean-nav ul li a.mean-expand:after {
  transform: rotate(90deg);
}

.meanMenuAcc ul li a.meanAcc-expand.meanAcc-clicked:after,
.mean-container .mean-nav ul li a.mean-expand.mean-clicked:after {
  display: none;
}

/* MENU・CLOSE　スタイル DF
-------------------------------------*/
.mean-container a.meanmenu-reveal em {
  display: block;
  position: absolute;
  width: 100%;
  text-indent: 0;
  text-align: center;
  font-weight: normal;
  font-style: normal;
  color: #000000;
  font-size: 11px;
}

/* スクロール対応 DF
-------------------------------------*/
.meanmenu-reveal.meanclose + .mean-nav {
  box-sizing: border-box;
  transition: height ease 0.3s;
  max-height: calc(100vh - 58px);
  /* 100% からヘッダの高さを引く*/
  overflow-y: scroll;
}

/* mmOpen時にbodyのスクロールを止める DF
-------------------------------------*/
/*
    html.mmOpen,
    html.mmOpen body {overflow: auto; height: 100%;}
    html.mmOpen body {overflow: hidden;}
*/
/* meanMenuAcc DF
-------------------------------------*/
.meanMenuAcc ul li a {
  display: block;
  border-top: 1px solid #383838;
  border-bottom: 1px solid #cccccc;
  text-decoration: none;
  text-transform: uppercase;
}

.meanMenuAcc ul {
  position: relative;
  z-index: 10;
}

.meanMenuAcc ul li {
  position: relative;
  float: left;
  width: 100%;
}

.meanMenuAcc ul li a.meanAcc-expand {
  position: absolute;
  z-index: 2;
  right: 0;
  top: 0;
  margin-top: 1px;
  text-align: center;
}

/* #####################  ここから　meanMenu　個別設定  ##################### */
/* =========================================================
  PC対応  ※PCで使用する場合は削除
          ※[meanScreenWidth] に大きめの値を設定
========================================================= */
@media print, screen and (min-width: 768px) {
  .meanMenu {
    display: none !important;
  }

  .header {
    height: auto !important;
  }

  .header .contents {
    height: auto !important;
  }
}
@media screen and (max-width: 767px) {
  /* =========================================================
  　ヘッダ固定  ※固定にしない場合は削除
  ========================================================= */
  .mean-container .mean-bar {
    position: fixed !important;
  }

  /* =========================================================
  　ヘッダ高さ  ※[meanNavPush]にも設定
  ========================================================= */
  .header .contents {
    height: 58px;
  }

  .mean-container .mean-nav {
    margin-top: 58px;
  }

  /* ====================================================
  　ヘッダスタイル
  ==================================================== */
  .header .contents {
  }
}
/* ====================================================
　≡ボタン
==================================================== */
.mean-container a.meanmenu-reveal {
  width: 58px;
  height: 58px;
  padding: 0;
  background: #1D4900;
}

.mean-nav ul li li > a:not(fitst-of-child) {
  opacity: 1 !important;
}

/* ====================================================
　≡スタイル
==================================================== */
.mean-container a.meanmenu-reveal span {
  position: relative;
  top: 7px;
  /* ≡の位置調整 */
  width: 40%;
  /* ≡の長さ */
  background: #fff;
  /* ≡の色 */
  height: 1px;
  /* ≡の太さ */
  margin: 7px auto;
  /* ≡の間隔 */
}
.mean-container a.meanmenu-reveal span:nth-of-type(3){
   width: 25%;
   margin-left: 30%;
}

/* ====================================================
　×スタイル
==================================================== */
.mean-container a.meanmenu-reveal.meanclose span {
  top: 14px;
  /* ×の位置調整 */
  left: 18px;
  /* ×の位置調整 */
  width: 40%;
  /* ×の長さ */
  background: #fff;
  /* ×の色 */
  height: 1px;
  /* ×の太さ */
}
.mean-container a.meanmenu-reveal.meanclose span:nth-of-type(3){
    width: 40%;
    margin-left: auto;
 }

/* ====================================================
　MENU・CLOSE　スタイル
==================================================== */
.mean-container a.meanmenu-reveal em {
  bottom: 3px;
  color: #fff;
  font-size: 1.0rem;
}

/* ====================================================
　メニュースタイル
==================================================== */
.mean-container .mean-nav {background:url(../img/contents/bg_green2.png), #fff;}/* メニュー色 */
.mean-container .mean-nav > ul{
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
.mean-container .mean-nav > ul > li {width: 50%; float:  none;}
.mean-container .mean-nav > ul > li:nth-child(2n) a{border-left: 1px solid #b2beaa;}
.mean-container .mean-nav > ul > li > a {
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    align-items: center;
    height: 100%;
    border-top-color: #b2beaa !important;      /* 区切り線上 */
    border-bottom-color: #b2beaa !important;   /* 区切り線下 */
    padding: 1.25em 10px 1.15em !important; /* ボタン余白 */
    color:#000;                                 /* 文字色 */
    font-weight: bold;
}
.mean-container .mean-nav > ul > li:nth-child(1) a,
.mean-container .mean-nav > ul > li:nth-child(2) a {border-top: 1px solid #1d4900!important;}/* 上端の罫線 */

/* 矢印
-------------------------------------*/
.mean-container .mean-nav > ul > li > a:before{
  content: "";
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.5em;
  width: 14px;
  height: 14px;
  background: url(../img/contents/ico-circle_arrow.svg);
  background-repeat: no-repeat;
  background-size: 14px 14px;
}

/* お問い合わせ
-------------------------------------*/
.mean-container .mean-nav ul .info{width: 100%; border-top: 1px solid #b2beaa; padding: 2em 1em 2.5em;}
.mean-container .mean-nav ul li.info a:not(.mean-expand){width: auto!important;}
.mean-container .mean-nav ul .info .tel a{
    display: inline-block;
    vertical-align: middle;
    border: none;
    float: none;
    text-align: center;
    padding: 0;
}
.mean-container .mean-nav ul .info .button{
    display: inline-block;
    border: 1px solid #000;
    color: #000;
    float: none;
    text-align: center;
}
.mean-container .mean-nav ul .info .button:hover{
  background: #fff;
}



/* 下端の罫線 */
/* ====================================================
　＋・－　スタイル
==================================================== */
.mean-container .mean-nav ul li a.mean-expand {
  width: 50px;
  height: 50px;
  background: #f0f0f0 !important;
}

.mean-container .mean-nav ul li a.mean-expand:before,
.mean-container .mean-nav ul li a.mean-expand:after {
  background: #999999;
  /* ＋－の色 */
  width: 30%;
  /* ＋－の間隔 */
  height: 3px;
  /* ＋－の太さ */
  margin: 5px auto;
  /* ＋－の感覚 */
}

.mean-container .mean-nav ul li a.mean-expand:before {
  top: 35%;
}

/* －の位置調整 */
.mean-container .mean-nav ul li a.mean-expand:after {
  top: 19%;
}

/* ｜の位置調整 */



/* ######################################################################################

    pageNav

###################################################################################### */ 
.pageNav ul li{border: 1px solid #ddd;}
.pageNav ul li + li{border-left: none;}
.pageNav ul li a{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  text-align: center;
  color: #000;
  text-decoration: none;
  font-weight: bold;
}
.pageNav ul li a:hover{
  background: #F9F9F9;
}

@media print, screen and (min-width: 768px) {
  .pageNav ul li{min-width: 184px;}
  .pageNav ul li a{padding: 0.75em 0.5em; font-size: 1.4rem;}
  .pageNav ul li.active a{
    background: #000;
    color: #fff;
  }
}
@media screen and (max-width: 767px) {
  .pageNav ul.column2 li{width: 50%;}
  .pageNav ul.column3 li{width: 33.333333333%;}
  .pageNav ul.column4 li{width: 25%;}
  .pageNav ul li a{padding: 0.75em 0.5em; font-size: 1.3rem;}

}

/* ====================================================
　枠線なしに転用
==================================================== */
.pageNav.no_square ul li{border: none; border-left: 1px solid #707070;}
.pageNav.no_square ul li:last-child{border-right: 1px solid #707070;}

@media print, screen and (min-width: 768px) {
  .pageNav.no_square ul li{min-width: auto;}
  .pageNav.no_square ul li a{padding: 0 1em;}
  .pageNav.no_square ul li.active a,
  .pageNav.no_square ul li a:hover{
    background: none;
    color: #000;
  }
} 
@media screen and (max-width: 767px) {
  .pageNav.no_square ul li a{padding: 0 0.5em;}
}



/* ######################################################################################

    ページトップ

###################################################################################### */ 
.pageTopFix{
  position: fixed;
  background-color: #000000;
  z-index: 800;
  cursor: pointer;
  text-indent: -99999px;
}
.pageTopFix:before{
  content: "";
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
  transform: rotate(45deg);
  position: absolute;
}

@media print, screen and (min-width: 768px) {
  .pageTopFix{
      bottom: 80px;
      right: 50px;
      width: 64px;
      height: 64px;
  }
  .pageTopFix:before{
      width: 10px;
      height: 10px;
      top: calc(50% - 2.5px);
      left: calc(50% - 5px);
  }
}
@media screen and (max-width: 767px) {
  .pageTopFix{
      bottom: 85px;
      right: 15px;
      width: 46px;
      height: 46px;
  }
  .pageTopFix:before{
      width: 10px;
      height: 10px;
      top: calc(50% - 2.5px);
      left: calc(50% - 5px);
  }
}


/* ######################################################################################

　photoLinkArea

###################################################################################### */
.photoLinkArea li {position: relative;}

@media print, screen and (min-width: 768px) {
    .photoLinkArea  li{width: 360px;}
}
@media screen and (max-width: 767px) {
    .photoLinkArea  li{width: 100%;}
    .photoLinkArea  li + li{margin-top: 1em;}
}


/* ######################################################################################

　スライダー：slickSlider

###################################################################################### */

/* ====================================================
　3＠デフォルト
==================================================== */
/* スライド同士の間隔 DF
-------------------------------------*/
.slick-slide {margin: 0px 0; padding:0;}

/* ====================================================
　[1] ファーストビュー全画面
==================================================== */
.fullscreen.slickSlider img {
    width:100%;
    object-fit:cover;
}
.fullscreen.slickSlider .slick-dots {bottom: 1.5em;}

@media print, screen and (min-width: 768px) {
  .fullscreen.slickSlider img {height:730px;}
}
@media screen and (max-width: 767px) {
  .fullscreen.slickSlider img {height:300px;}
}


/* ######################################################################################

    tableList

###################################################################################### */
.tableList dd{font-weight: normal;} 
@media print, screen and (min-width: 768px) {
  .tableList{width: 1000px; margin: 0 auto;}
  .tableList dl{
    display: flex;
    justify-content: space-between;
  }
  .tableList dl dt,
  .tableList dl dd{
    padding-top: 1em;
    padding-bottom: 1em;
  }
  .tableList dt{width: 160px;border-bottom: 1px solid #111111;}
  .tableList dd{width: 840px;border-bottom: 1px solid #E1E1E1;}

  .tableList dl dt,
  .tableList dl dd,
  .tableList dl dd p{
    font-size: 1.4rem;
    line-height: 1.875;
  }
  .tableList dt{width: 160px;}
  .tableList dd{width: 840px;}
	
  .tableList.wide{width: 1100px; margin: 0 auto;}
  .tableList.wide dt{width: 200px;}
  .tableList.wide dd{width: 900px;}
  .tableList.tight{width: 900px; margin: 0 auto;}
  .tableList.tight dt{width: 200px;}
  .tableList.tight dd{width: 700px;}

}
@media screen and (max-width: 767px) {
  .tableList dl{}
  .tableList dl dt{font-size: 1.5rem; line-height: 1.5;padding: 1em 0 0.5em 0;}
  .tableList dl dd,
  .tableList dl dd p{font-size: 1.4rem; line-height: 1.5;}
  .tableList dd{padding: 0 0 0.85em 0;border-bottom: 1px solid #E1E1E1;} 
}


/* ######################################################################################

    title タイトル

###################################################################################### */
h1, h2, h3, h4, h5, h6 {
  margin: 0 0 1.25em;
  padding: 0;
  line-height: 1.25;
  font-weight: bold;
}

@media print, screen and (min-width: 768px) {
  h1 {
    font-size: 40px;
  }
}
@media screen and (max-width: 767px) {
  h1 {
    font-size: 32px;
  }
}

@media print, screen and (min-width: 768px) {
  h2 {
    font-size: 30px;
  }
}
@media screen and (max-width: 767px) {
  h2 {
    font-size: 26px;
  }
}

@media print, screen and (min-width: 768px) {
  h3 {
    font-size: 20px;
  }
}
@media screen and (max-width: 767px) {
  h3 {
    font-size: 18px;
  }
}

@media print, screen and (min-width: 768px) {
  h4 {
    font-size: 18px;
  }
}
@media screen and (max-width: 767px) {
  h4 {
    font-size: 16px;
  }
}

@media print, screen and (min-width: 768px) {
  h5 {
    font-size: 16px;
  }
}
@media screen and (max-width: 767px) {
  h5 {
    font-size: 14px;
  }
}

@media print, screen and (min-width: 768px) {
  h6 {
    font-size: 14px;
  }
}
@media screen and (max-width: 767px) {
  h6 {
    font-size: 12px;
  }
}

/* ====================================================
    boldTitle
==================================================== */
.boldTitle.nomal{font-weight: normal;}
.boldTitle.large{margin-bottom: 2.5em;}
.boldTitle.extra{margin-bottom: 2em;}
.boldTitle.middle{margin-bottom: 1em;}
.boldTitle.small{margin-bottom: 0.5em;}

@media print, screen and (min-width: 768px) {
  .boldTitle{font-size: 2.4rem; line-height: 1.6;}
  .boldTitle.large{font-size: 2.8rem;}
  .boldTitle.extra{font-size: 3.2rem;}
  .boldTitle.middle{font-size: 1.8rem;}
  .boldTitle.small{font-size: 1.4rem;}
}
@media screen and (max-width: 767px) {
  .boldTitle{font-size: 1.8rem; line-height: 1.6;}
  .boldTitle.large{font-size: 2.0rem;}
  .boldTitle.extra{font-size: 2.0rem;}
  .boldTitle.middle{font-size: 1.4rem;}
  .boldTitle.small{font-size: 1.5rem;}
}

/* ====================================================
    underLineTitle
==================================================== */
.underLineTitle:after{
  content: "";
  display: block;
  margin-top: 1em;
  height: 1px;
  background: #000;
}

.underLineTitle.white{color: #fff;}
.underLineTitle.white:after{
  background: #fff;
}


@media print, screen and (min-width: 768px) {
  .underLineTitle:after{width: 65px;}
  .underLineTitle.short:after{margin-top: 0.75em; width: 30px;}
}
@media screen and (max-width: 767px) {
  .underLineTitle:after{width: 30px;}
  .underLineTitle.short:after{margin-top: 0.5em;}
}

/* ====================================================
    doubleTitle
==================================================== */
.doubleTitle .small{display: block; margin-top: 0.25em;}

@media print, screen and (min-width: 768px) {
    .doubleTitle{font-size: 2.8rem;}
    .doubleTitle .small{font-size: 1.3rem;}
}
@media screen and (max-width: 767px) {
    .doubleTitle{font-size: 2.5rem;}
    .doubleTitle .small{font-size: 1.1rem;}
}

/* ====================================================
    bgTitle
==================================================== */
.bgTitle{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-bottom: 0.5em;
  background: #1D4900;
  color: #fff;
  line-height: 1.6;
}

@media print, screen and (min-width: 768px) {
  .bgTitle{width: 170px; height: 120px; font-size: 1.8rem;}
  .bgTitle .small{font-size: 1.4rem;}
}
@media screen and (max-width: 767px) {
  .bgTitle{width: 100%; height: 80px; font-size: 1.4rem;}
  .bgTitle .small{font-size: 1.4rem;}
}

/* 色 */
.bgTitle.black{
  background: #000;
}

/* 狭いタイトル */
.bgTitle.narrow{
  display: inline-block;
  width: auto; 
  height: auto;
  text-align: center;
  padding: 0.5em;
  margin-bottom: 1em;
}
@media print, screen and (min-width: 768px) {
  .bgTitle.narrow{min-width: 180px;}
}
@media screen and (max-width: 767px) {
  .bgTitle.narrow{min-width: 180px;}
}

/* ====================================================
    日本語　+　英語タイトル
==================================================== */

@media print, screen and (min-width: 768px) {
	.ttl {font-size: 2.6rem;font-weight: bold;line-height: 1.3;}
	.ttl small{display:block; margin-top: 1.00em; font-size:1.1rem;}
	
}

@media screen and (max-width: 767px) {
	.ttl {font-size: 2.0rem;font-weight: bold;line-height: 1.3;}
	.ttl small{display:block; margin-top:10px; font-size:11px;}
	
}

/* ######################################################################################

    topicsInfo

###################################################################################### */
.topicsInfo.borderSolid .entry {
  border-style: solid;
}
.topicsInfo .entry {
  border-color: #dddddd;
  border-bottom-width: 1px;
  position: relative;
  line-height: 1.5;
}
.topicsInfo .entry:after{
  content: "";
  display: block;
  clear: both;
}
.topicsInfo .entry a {
  color: #000;
  text-decoration: none;
}
.topicsInfo .entry a:hover {
  text-decoration: underline;
}


.topicsInfo .entry .img{float: left; margin-right: 1.5em;}
.topicsInfo .entry .imgFit{width: 100px; height: 100px; border-radius: 4px;}

.topicsInfo .entry .date .category{}
.topicsInfo .entry .date .category:before{
  content: "";
  position: relative;
  top: -3px;
  display: inline-block;
  vertical-align: middle;
  width: 1px;
  height: 14px;
  margin: 0 20px;
  background: #000;
}

@media print, screen and (min-width: 768px) {
  .topicsInfo .entry {
    font-size: 1.5rem;
  }
  .topicsInfo.dateBlock .date {
    padding: 1em 0.75em 0;
    font-size: 100%;
  }
  .topicsInfo.dateBlock .text {
    padding: 0.5em 0.75em 0.75em;
  }
  .topicsInfo.dateInline .date {
    display: table-cell;
    white-space: nowrap;
    padding: 0.75em;
    font-size: 100%;
  }
  .topicsInfo.dateInline .text {
    display: table-cell;
    padding: 0.75em;
    font-weight: bold;
  }
}
@media screen and (max-width: 767px) {
  .topicsInfo .entry {
    padding: 10px 0;
    font-size: 1.3rem;
  }
  .topicsInfo .date {
    margin-bottom: 0.5em;
    padding: 0 5px;
    font-size: 100%;
  }
  .topicsInfo .text {
    padding: 0 5px;
  }
}


/* ######################################################################################

　topicPath

###################################################################################### */
.topicPath {
  display: block;
  clear: both;
  line-height: 1;
  padding-top: 1em;
  padding-bottom: 1em;
}
.topicPath ol {
  display: inline-block;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  text-align: left;
  font-size: 0;
}
.topicPath ol li {
  display: inline-block;
  font-size: 1.2rem;
  line-height: 1;
  /* white-space:nowrap; */
}
.topicPath ol li:before {
  content: "";
  display: inline-block;
  margin-right: 1em;
  margin-left: 1em;
  width: 4px;
  height: 7px;
  background-size: 4px 7px;
  background-image: url(../img/contents/ico-arrow.svg);
}
.topicPath ol li:first-child:before {
  margin-left: 0;
  width: 10px;
  height: 10px;
  background-size: 10px 10px;
  background-image: url(../img/contents/ico-home.svg);
}
.topicPath ol li a {
  color: #999999;
  text-decoration: none;
  font-size: 1.2rem;

}
.topicPath a:hover {
text-decoration: underline;
}
.topicPath ol li span{
  color: #666666;
  font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
  .topicPath {padding-top: 0.75em; padding-bottom: 0.75em;}
  .topicPath ol li {padding-top: 0.25em; padding-bottom: 0.25em;}
}


/* ######################################################################################

　wallBelt

###################################################################################### */
.wallBelt {
    overflow: hidden;
    padding-top: 30px;
    padding-bottom: 30px;
  }
  @media print, screen and (min-width: 768px) {
    .wallBelt {
      padding-top: 60px;
      padding-bottom: 60px;
    }
    .wallBelt.narrow {
      padding-top: 30px;
      padding-bottom: 30px;
    }
    .wallBelt.wide {
      padding-top: 90px;
      padding-bottom: 90px;
    }
    .wallBelt.extra {
      padding-top: 120px;
      padding-bottom: 120px;
    }
    .wallBelt.topNarrow {
      padding-top: 30px;
    }
    .wallBelt.topWide {
      padding-top: 90px;
    }
    .wallBelt.topExtra {
      padding-top: 120px;
    }
    .wallBelt.bottomNarrow {
      padding-bottom: 30px;
    }
    .wallBelt.bottomWide {
      padding-bottom: 90px;
    }
    .wallBelt.bottomExtra {
      padding-bottom: 120px;
    }
  }
  @media screen and (max-width: 767px) {
    .wallBelt {
      padding-top: 30px;
      padding-bottom: 30px;
    }
    .wallBelt.narrow {
      padding-top: 15px;
      padding-bottom: 15px;
    }
    .wallBelt.wide {
      padding-top: 45px;
      padding-bottom: 45px;
    }
    .wallBelt.extra {
      padding-top: 60px;
      padding-bottom: 60px;
    }
    .wallBelt.topNarrow {
      padding-top: 15px;
    }
    .wallBelt.topWide {
      padding-top: 45px;
    }
    .wallBelt.topExtra {
      padding-top: 60px;
    }
    .wallBelt.bottomNarrow {
      padding-bottom: 15px;
    }
    .wallBelt.bottomWide {
      padding-bottom: 45px;
    }
    .wallBelt.bottomExtra {
      padding-bottom: 60px;
    }
  }
  .wallBelt.zero {
    padding-top: 0;
    padding-bottom: 0;
  }
  .wallBelt.topZero {
    padding-top: 0;
  }
  .wallBelt.bottomZero {
    padding-bottom: 0;
  }

/* 色
-------------------------------------*/
  .wallBelt.black{
	background-color: #000;
    color: #ddd;
  }
  .wallBelt.black *{
    color: #ddd;
  }
 .wallBelt.dotGray01{
    background: url(../img/contents/bg_01.jpg);
  }
 .wallBelt.dotGray02{
    background: url(../img/contents/bg_02.jpg);
  }
  .wallBelt.dotGray03{
    background: url(../img/contents/bg_03.jpg);
  }

/* ====================================================
　 片側背景　+　写真とテキスト  overlaps
==================================================== */
@media print, screen and (min-width: 768px) {
    .wallBelt.overlaps{
      margin-bottom: 80px;
      padding: 0;
      position: relative;
      z-index: 1;
    }
    .wallBelt.overlaps:before{
      content: "";
      position: absolute;
      width: 50%;
      height: 100%;
      top: 0;
      background: #fff;
    }
    .wallBelt.overlaps .contents{position: relative; z-index: 2;}

    .wallBelt.overlaps.bgRight:before{left: 0;}
    .wallBelt.overlaps.bgLeft:before{right: 0;}
    
    .wallBelt.overlaps.green{background: url(../img/contents/bg_green.png);}
    .wallBelt.overlaps.beige{background: url(../img/contents/bg_beige.png);}
    .wallBelt.overlaps.gray{background: url(../img/contents/bg_gray.png);}
}

@media screen and (max-width: 767px) {
  .wallBelt.overlaps{
    background-size: 100%;
    background-repeat: no-repeat;
    padding-top: 74%;
    padding-bottom: 40px;
  }
}


/* テキスト部分
-------------------------------------*/
@media print, screen and (min-width: 768px) {
  .wallBelt.overlaps .inner{
    position: relative;
    background-repeat: no-repeat;
    background-size: 720px 480px;
    background-color: #fff;
    height: 480px;
  }
  .wallBelt.overlaps .inner.textL{background-position: right top;}
  .wallBelt.overlaps .inner.textR{background-position: left top;}

  .wallBelt.overlaps .inner .textArea{
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 600px;
    height: 370px;
    padding: 0 5em;
    background: #fff;
  }
  .wallBelt.overlaps .inner.textL .textArea{left: 0;}
  .wallBelt.overlaps .inner.textR .textArea{right: 0;}
    
  .wallBelt.overlaps .inner .textArea p{
    margin-bottom: 1.75em;
    font-size: 1.7rem;
    line-height: 2.1;
  }
  .wallBelt.overlaps .inner .buttonBox{text-align: left;}
}

@media screen and (max-width: 767px) {
  .wallBelt.overlaps .inner .textArea p{
    margin-bottom: 1.5em;
    font-size: 1.4rem;
    line-height: 1.85;
  }
  .wallBelt.overlaps .inner .buttonBox{text-align: center;}
}