/*==============================================
01. GENERAL CSS
================================================*/

html,
body {
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -ms-font-smoothing: antialiased;
  font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}
body {
  font: 16px/1.6;
  font-family: "游ゴシック",YuGothic,"ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","メイリオ",Meiryo,sans-serif;
  color: #333;
  text-align:center;
  background: #fff;
  margin: 0;
  padding: 0;
}
img {
  border: 0;
  max-width: 100%;
}
html {
  -ms-overflow-style: scrollbar;
}

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box
}

.btn,
.footer li a,
footer li a,
input[type="submit"]+label {
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}
ul,ol {
  margin: 0;
  padding: 0;
}
li {
  list-style-type: none;
}
a {
  text-decoration: none;
}
a:hover,
a:focus {
  outline: none;
  text-decoration: underline;
}
@media screen and (-ms-high-contrast:active), (-ms-high-contrast:none) {
  a:active {
    background-color: transparent;
  }
}
.bold,.blue,.green,.red {
  font-weight: 700;
}
.blue {color: #1d7d8b;}
.green {color: #5f9b33;}
.red { color: #e01427;}

/*flex*/

.flex{
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
}

.wrap{
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  -o-flex-wrap: wrap;
  flex-wrap: wrap
}

.nowrap{
  -webkit-flex-wrap: nowrap;
  -moz-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  -o-flex-wrap: nowrap;
  flex-wrap: nowrap
}

.flex-row{
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  -o-flex-direction: row;
  flex-direction: row;
}

.reverse{
  -webkit-flex-direction: row-reverse;
  -moz-flex-direction: row-reverse;
  -ms-flex-direction: row-reverse;
  -o-flex-direction: row-reverse;
  flex-direction: row-reverse;
}
.column-reverse{
  -webkit-flex-direction: column-reverse;
  -moz-flex-direction: column-reverse;
  -ms-flex-direction: column-reverse;
  -o-flex-direction: column-reverse;
  flex-direction: column-reverse;
}
.flex-column{
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  -o-flex-direction: column;
  flex-direction: column
}

.justify-start{
  -webkit-justify-content: flex-start;
  -moz-justify-content: flex-start;
  -ms-justify-content: flex-start;
  -o-justify-content: flex-start;
  justify-content: flex-start
}
.justify-end{
  -webkit-justify-content: flex-end;
  -moz-justify-content: flex-end;
  -ms-justify-content: flex-end;
  -o-justify-content: flex-end;
  justify-content: flex-end
}
.justify-center{
  -webkit-justify-content: center;
  -moz-justify-content: center;
  -ms-justify-content: center;
  -o-justify-content: center;
  justify-content: center
}
.justify-between{
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-justify-content: space-between;
  -o-justify-content: space-between;
  justify-content: space-between
}
.justify-around{
  -webkit-justify-content: space-around;
  -moz-justify-content: space-around;
  -ms-justify-content: space-around;
  -o-justify-content: space-around;
  justify-content: space-around
}

.align-start{
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  -ms-align-items: flex-start;
  -o-align-items: flex-start;
  align-items: flex-start
}
.align-end{
  -webkit-align-items: flex-end;
  -moz-align-items: flex-end;
  -ms-align-items: flex-end;
  -o-align-items: flex-end;
  align-items: flex-end
}
.align-center{
  -webkit-align-items: center;
  -moz-align-items: center;
  -ms-align-items: center;
  -o-align-items: center;
  align-items: center
}
.align-base{
  -webkit-align-items: baseline;
  -moz-align-items: baseline;
  -ms-align-items: baseline;
  -o-align-items: baseline;
  align-items: baseline
}
.align-stretch{
  -webkit-align-items: stretch;
  -moz-align-items: stretch;
  -ms-align-items: stretch;
  -o-align-items: stretch;
  align-items: stretch
}

.content-start{
  -webkit-align-content: flex-start;
  -moz-align-content: flex-start;
  -ms-align-content: flex-start;
  -o-align-content: flex-start;
  align-content: flex-start
}
.content-end{
  -webkit-align-content: flex-end;
  -moz-align-content: flex-end;
  -ms-align-content: flex-end;
  -o-align-content: flex-end;
  align-content: flex-end
}
.content-center{
  -webkit-align-content: center;
  -moz-align-content: center;
  -ms-align-content: center;
  -o-align-content: center;
  align-content: center
}
.content-between{
  -webkit-align-content: space-between;
  -moz-align-content: space-between;
  -ms-align-content: space-between;
  -o-align-content: space-between;
  align-content: space-between
}
.content-around{
  -webkit-align-content: space-around;
  -moz-align-content: space-around;
  -ms-align-content: space-around;
  -o-align-content: space-around;
  align-content: space-around
}
.defo{
  -webkit-flex: 0 0 25%;
  -moz-flex: 0 0 25%;
  -ms-flex: 0 0 25%;
  -o-flex: 0 0 25%;
  flex: 0 0 25%;
}

/*w_set*/

.w_set {
  width: 800px;
  margin: 0 auto;
}
@media screen and (max-width:768px) {
   .w_set {
      width: 95%;
    }
}

/*header*/

header {
  border-top: #f68033 3px solid;
  box-shadow: 2px 2px 2px 2px rgba(100,100,100,0.2);
  padding-top: 25px;
}
header figure {
  width: 200px;
  margin: 0 auto;
}
header nav {
  border-top: #ddd 1px solid;
  margin-top: 15px;
}
header li a {
  display: block;
  padding: 15px 30px;
  color: #222;
}
header li {
  font-size: 14px;
  position: relative;
  color: #222;
  font-weight: 700;
}
header li.no_link {
  padding: 15px 30px;
}
header li:not(:last-child):after {
  font-family: "Font Awesome 5 Free";
  content: "\f105";
  position: absolute;
  top: 50%;
  right: -6px;
  margin-top: -8px;
  font-weight: 900;
  color: #dedede;
}

@media screen and (max-width:425px) {
   header figure {
      width: 150px;
    }
    header li a,header li.no_link {
      padding: 12px 15px;
    }
    header li:not(:last-child):after {
      right: -3px;
      margin-top: -7px;
    }
}
@media screen and (max-width:375px) {
   header figure {
      width: 120px;
    }
}

/*h1*/

h1 {
  margin: 0;
  padding-top: 30px;
  line-height: 1.3
}
h1 span {
  display: block;
  font-size: 20px;
  color: #dedede;
}
@media screen and (max-width:425px) {
   h1 {
      font-size: 22px;
    }
}
@media screen and (max-width:375px) {
   h1 {
      font-size: 25px;
    }
}
@media screen and (max-width:325px) {
   h1 {
      font-size: 18px;
    }
}

/*specific_tbl*/

.specific_tbl {
  margin: 30px auto;
}
.specific_tbl th,.specific_tbl td{
  padding: 20px;
  border: #ededed 1px solid;
}
.specific_tbl th {
  width: 30%;
  text-align: center;
  background: #fdfdea;
}
.specific_tbl td {
  width: 70%;
  text-align: left;
}
.specific_tbl a {
  color: #d95d31;
}
@media screen and (max-width:375px) {
   .specific_tbl th,.specific_tbl td{
      font-size: 15px;
    }
}
@media screen and (max-width:325px) {
  .specific_tbl th,.specific_tbl td{
    display: block;
    width: 100%;
    text-align: left;
  }
}

/*qa*/

.qa {
  padding: 25px 0;
}
.qa li {
  border: #ddd 1px solid;
  padding: 15px 25px;
  -moz-box-shadow: 0px 0px 22px -3px rgba(148, 148, 148, 0.48);
  -webkit-box-shadow: 0px 0px 22px -3px rgba(148, 148, 148, 0.48);
  -ms-box-shadow: 0px 0px 22px -3px rgba(148, 148, 148, 0.48);
  box-shadow: 0px 0px 22px -3px rgba(148, 148, 148, 0.48);
  margin-bottom: 15px;
  text-align: left
}
.qa .q_ttl {
  color: #ff7e5a;
  font-weight: 700;
  font-size: 20px;
  border-bottom: #ddd 1px dashed;
  padding-bottom: 12px;
}

@media screen and (max-width:425px) {
   .qa li {
      padding: 5px 25px;
    }
}
@media screen and (max-width:375px) {
   .qa .q_ttl {
      font-size: 18px;
    }
}

/*text_area*/

.text_area {
  text-align: left;
  padding: 15px 0;
  border-top: #ddd 1px dashed;
  margin-top: 25px;
}
.sml_txt {
  font-size: 13px;
  color: #e91f40;
}

/*contact_tbl*/

.contact_tbl {
  margin: 30px auto;
}
.contact_tbl th,.contact_tbl td{
  padding: 20px;
  border: #ededed 1px solid;
  text-align: left;
}
.contact_tbl th {
  width: 30%;
  border-right: #ddd 1px dashed;
}
.contact_tbl td {
  width: 70%;
}
.contact_tbl a {
  color: #d95d31;
}
.contact_tbl .pop_rec,.contact_tbl .pop_any {
  display: inline-block;
  font-size: 11px;
  padding: 2px 12px;
  border-radius: 20px;
  color: #fff;
  margin-right: 10px;
  vertical-align: middle
}
.contact_tbl .pop_rec {
  background: #ff642e;
}
.contact_tbl .pop_any {
  background: #323232;
}
@media screen and (max-width:425px) {
  .contact_tbl th,.contact_tbl td {
    display: block;
    width: 100%;
  }
  .contact_tbl th {
    background: #efefef;
  }
}

/*sitemap*/

.map .ttl {
  font-size: 20px;
  font-weight: 700;
  padding: 10px 20px;
  background: #fafafa;
}
.map ul {
  margin-bottom: 30px;
}
.map li a {
  display: block;
  padding: 12px 20px;
  font-weight: 700;
  font-size: 17px;
  color: #333;
}
.map li:not(:last-child) {
  border-bottom: #ddd 1px dashed;
}

/*form*/

input:required,
textarea:required{
  background: #ffcdd2;
}
input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
  border: #ddd 1px solid;
  border-radius: 5px;
  padding: 10px;
  font-family: "メイリオ",Meiryo,sans-serif;
}
input[type="email"]:invalid,
textarea:invalid{
  background: #ffcdd2;
}
input:valid,
textarea:valid{
  background: #e8f0fe;
}
input:focus,
textarea:focus{
  background: #ededc8;
}

/*checkbox*/

.cp_ipcheck {
  margin: 30px 0;
  font-size: 15px;
}
.cp_ipcheck .list_item {
  margin: 0 0 0.5rem 0;
  padding: 0;
}
.cp_ipcheck label {
  line-height: 135%;
  position: relative;
  margin: 0.5rem;
  cursor: pointer;
}
.cp_ipcheck .option-input05 {
  position: relative;
  margin: 0 1rem 0 0;
  cursor: pointer;
}
.cp_ipcheck .option-input05:before {
  position: absolute;
  z-index: 1;
  top: 0.125rem;
  left: 0.1875rem;
  width: 0.75rem;
  height: 0.375rem;
  content: '';
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75);
          transition:         transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75);
  -webkit-transform: rotate(-45deg) scale(0, 0);
          transform: rotate(-45deg) scale(0, 0);
  border: 2px solid #da3c41;
  border-top-style: none;
  border-right-style: none;
}
.cp_ipcheck .option-input05:checked:before {
  -webkit-transform: rotate(-45deg) scale(1, 1);
          transform: rotate(-45deg) scale(1, 1);
}
.cp_ipcheck .option-input05:after {
  position: absolute;
  top: -0.125rem;
  left: 0;
  width: 1.1rem;
  height: 1.1rem;
  content: '';
  cursor: pointer;
  border: 1px solid #bbb;
  background: #ffffff;
}
.cp_ipcheck .bold {
  background: #fdfde4;
  border: #d2d3a5 1px solid;
  display: inline-block;
  padding: 20px 35px;
}

@media screen and (max-width:425px) {
  .cp_ipcheck {
      width: 70%;
      margin: 25px auto;
    }
}

/*radio*/

.input-radio {
  position: relative;
  padding-left: 1.5em;
  display: inline-block;
}
.input-radio label {
    display: inline-block;
    font-size: 16px;
    cursor: pointer;
}
.input-radio label:before,
.input-radio label:after {
      content: "";
      position: absolute;
      display: inline-block;
      border-radius: 50%;
      transition: transform .2s ease;
}

.input-radio label:before {
      top: 50%;
      left: 0;
      width: 1.2em;
      height: 1.2em;
      border: 2px solid #ddd;
      transform: translateY(-50%);
}

.input-radio label:after {
      top: 50%;
      left: 0.25em;
      width: 0.7em;
      height: 0.7em;
      background-color: transparent;
      transform: scale(0) translateY(-50%);
}

.input-radio input[type="radio"] {
    display: none;
    border: 0;
    margin: 0;
}
.input-radio input[type="radio"]:checked + label:after {
      background-color: #ff642e;
      transform: scale(1) translateY(-50%);
}
input[type="submit"] {
  display: none;
}
input[type="submit"]+label {
  background: #592d2b;
  border: #592d2b 1px solid;
  border-radius: 10px;
  -webkit-box-shadow: 0 0 5px 0 rgba(139, 139, 139, 0.4);
  -moz-box-shadow: 0 0 5px 0 rgba(139, 139, 139, 0.4);
  box-shadow: 0 0 5px 0 rgba(139, 139, 139, 0.4);
  color: #fff;
  display: inline-block;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  padding: 20px 0;
  position: relative;
  width: 80%;
  max-width: 250px;
  margin-bottom: 50px;
  cursor: pointer;
}
input[type="submit"]+label:hover {
  background: #ff642e;
  border: #ff642e 1px solid;
}

@media screen and (max-width:425px) {
   .input-radio label:after {
        left: 0.2em;
  }
}

.w300 {
  width: 300px;
}
@media screen and (max-width:425px) {
   .w300 {
      width: 100%;
    }
}

.error {
  color: #ff0000;
  font-weight: 700;
  font-size: 13px;
  margin: 8px 0 0;
}
.error i {
  margin-right: 8px;
}

.privacy_inline {
  border: #ddd 1px solid;
  padding: 12px;
  height: 200px;
  overflow: auto;
  overflow-y: scroll;
  overflow-x: hidden;
  width: 600px;
  margin: 0 auto;
  text-align: left;
  font-size: 13px;
}
.privacy_inline .p_ttl {
  font-weight: 700;
  font-size: 18px;
  border-bottom: #ddd 1px dashed;
  padding-bottom: 5px;
  margin-bottom: 5px;
}
.privacy_inline .p_date {
  font-size: 12px;
}
.privacy_inline .box {
  background: #ffffe0;
  padding: 15px;
}

@media screen and (max-width:425px) {
   .privacy_inline {
    width: 85%;
    margin: 0 auto;
   }
}

@media screen and (max-width:375px) {
   .contact_tbl th,.contact_tbl td{
      font-size: 15px;
    }
}
@media screen and (max-width:325px) {
  .contact_tbl th,.contact_tbl td{
    display: block;
    text-align: left;
  }
}

.minh {
  min-height: 500px
}

/*footer*/

footer {
  background: #efefef;
  padding-top: 25px;
}
footer > p {
  background: #d95d31;
  font-size: 11px;
  color: #fff;
  width: 100%;
  margin-top: 20px;
  margin-bottom: 0!important;
}
footer li {
  display: inline-block;
  font-size: 14px;
}
footer li a {
  display: block;
  color: #232323;
  padding: 5px 15px;
}
footer li a:hover {
  text-decoration: none;
  background: #dedede;
  border-radius: 50px;
}

@media screen and (max-width:425px) {
   footer li {
      display: block;
      width: 100%;
      text-align: left;
    }
    footer li {
      border-bottom: #dedede 1px dashed;
    }
    footer li a {
      padding: 12px;
    }
}

.whitebox {
  margin: 20px auto 40px;
  width: 90%;
  max-width: 400px;
  padding: 15px;
  font-size: 14px;
  background: rgba(255,255,255,.5);
  border: 1px solid #eee;
  border-radius: 5px;
}
@media screen and (max-width:425px) {
    .whitebox {
      font-size: 0.7rem;
      margin: 30px auto;
      padding: 10px;
    }
}