@charset "utf-8";

/* 事業内容
---------------------------------------------*/
.contact {
  /*position: relative;
  height: 2602px;*/
  margin-top: 86px;
}
.contact-thanks {
  position: relative;
  height: 1253px;
  margin-top: 86px;
}
.contact-top-wrap {
  position: relative;
  height: 520px;
  z-index: -1;
}
.contact-tit-h2 {
  position: absolute;
  top: 180px;
  right: 0;
  width: 55%;
  height: 400px;
  background-image: url(../images/main_img_contact.jpg);
  background-position-x: 65%;
  background-position-y: center;
  z-index: 1;
}
.contact-tit-h2::before {
  content: "Contact";
  position: absolute;
  color: rgba(255, 153, 0, .3);
  font-size: 11.2rem;
  top: -112px;
  right: 0;
  z-index: 2;
}
.contact-tit-h2 h2 {
  position: relative;
  top: calc(100% / 2 - 0.5em);
  color: #fff;
  font-size: 6.4rem;
  padding-left: 30px;
  filter: drop-shadow(2px 4px 2px rgba(0, 0, 0, .5));
}
.contact .contact-h2 {
  position: absolute;
  top: 100px;
  left: 10%;
  background-color: #000;
  width: 250px;
  height: 250px;
  letter-spacing: 0em;
  z-index: 10;
}
.contact .contact-h2 h2::after { /* 右下の三角形 */
  content: "";
  position: absolute;
  bottom: 11px;
  right: 11px;
  border-left: 90px solid transparent;
  border-bottom: 90px solid #FDD000;
  z-index: 11;
}
.contact .contact-h2 h2 {
  color: #fff;
  font-size: 3.6rem;
  letter-spacing: 0;
  display: inline-block;
  border: 1px solid #fff;
  width: 230px;
  height: 230px;
  padding-top: 30px;
  padding-left: 5px;
  margin: 10px;
}
.contact-img {
  position: absolute;
  top: 340px;
  right: 10%;
  width: 420px;
  z-index: 3;
}
.contact-img img {
  width: 100%;
  height: auto;
}
.contact-wrap {
  width: 1200px;
  padding: 0 45px;
  padding-bottom: 200px;
  margin: 0 auto;
  border-left: 1px solid #666;
}
.contact-thanks .contact-wrap {
  position: absolute;
  top: 640px;
  left: calc(100% / 2 - 600px);
  width: 1200px;
  padding: 0 45px;
  z-index: 100;
  width: 1200px;
  padding: 0 45px;
  border: none;
}
.contact-thanks .contact-wrap::before {
  content: "";
  position: inherit;
  top: -150px;
  left: 0;
  width: 1px;
  min-height: 2002px;
  background-color: #666;
  z-index: 1;
}
.contact-thanks .contact-wrap::before {
  min-height: 763px;
}
.contact-wrap.contact-form {
  top: 520px;
}
.contact-wrap.contact-form::before {
  top: 0;
}
.contact-wrap p {
  margin-bottom: 1em;
  line-height: 1.5em;
}
.contact_txt {
  background-color: rgba(200, 200, 200, .5);
  padding: 20px;
  margin-bottom: 50px;
}
.contact_txt li {
  font-size: 1.6rem;
  line-height: 1.5em;
}
.contact .btn {
  display: inline-block;
  left: calc(100% / 2 - 150px);
  margin: 50px auto 0 auto;
}

/* form (PC) 
---------------------------------- */
.contact_li_att {
  border: solid 1px #ccc;
  background-color: #fff;
  font-size: 1.4rem;
  padding: 20px;
  margin-bottom: 1em;
}
.contact_li_att li {
  margin-bottom: 0.5em;
}
.link-policy {
  color: #e00;
  font-weight: 400;
  text-decoration: underline;
}
.mailform .policyouter {
  display: flex;
}
form#mailformpro dl dt.policy {
  border-top: none;
  padding: 0;
  width: auto;
  margin-right: 0;
  margin-bottom: 60px;
}
form#mailformpro dl dd.policy {
  border-top: none;
  font-size: 1.6rem;
  padding: 0;
  margin-bottom: 60px;
}
.mfp.policy label {
  margin: 0 0 0 20px !important;
}
.mfp.policy label span {
  color: #e00;
}
.mfp.policy label:hover {
  cursor: pointer;
}
.mfp.policy label input[type="checkbox"] {
  display: none;
}
.mfp.policy label:before {
  font-family: "Font Awesome 5 Free";
  content: "\f14a";
  font-size: 1.6rem;
  font-weight: 900;
  color: #999;
}
.mfp.policy label.mfp_checked:before {
  color: #ffa01d;
}
.formflex {
  display: flex;
  align-items: center;
  border-top: 1px solid #c7c7c7;
  padding-left: 15px;
}
.formflex:last-of-type {
  border-bottom: 1px solid #c7c7c7;
}
.formflex dt {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
}
.formflex dd {
  display: flex;
  padding: 20px 0 !important;
  width: 68.41%;
}
.mfp.name input, .mfp.address input, .mfp.tel input, .mfp.email input, .mfp.inputtext textarea {
  font-size: 1.6rem;
  width: 100% !important;
  height: 40px;
  border: 1px solid #c7c7c7;
  border-radius: 5px;
  box-sizing: border-box;
  padding: 5px;
  margin-right: 20px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.mfp.name input:last-of-type {
  margin-right: 0;
}
.mfp input[type="radio"] {
  display: none;
}
.mfp.address {
  display: block;
}
.mfp.address .arrow {
  position: absolute;
  line-height: 40px;
  left: 200px;
}
.mfp.address .arrow:before {
  font-family: "Font Awesome 5 Free";
  content: "\f0d7";
  font-size: 1.6rem;
  font-weight: 900;
  color: #333;
}
.mfp.address input {
  display: block;
}
.mfp.address .selectouter {
  position: relative;
}
.mfp.address .arrow {
  position: absolute;
  line-height: 40px;
  left: 200px;
}
.mfp.address select {
  display: block;
  width: 230px;
  height: 40px;
}
.mfp.address input {
  width: 100% !important;
  margin-right: 0;
  margin-bottom: 20px;
}
.mfp.address input:nth-of-type(2) {
  width: 226px !important;
}
.mfp.address input:last-of-type {
  margin-bottom: 0;
}
.mfp.tel input, .mfp.email input {
  width: 100% !important;
  margin-right: 0;
  margin-bottom: 0;
}
.mfp.inputtext textarea {
  width: 100% !important;
  height: 160px !important;
  margin-right: 0;
  margin-bottom: 0;
}
/*レイアウト調整*/
.mfp_col5 {
  width: 50%;
}
.mfp_col10 {
  width: 100%;
}
.name .mfp_col5, .sex .mfp_col5 {
  margin-right: 10px !important;
}
.name .mfp_col5:last-of-type, .sex .mfp_col5:last-of-type {
  margin-right: 0 !important;
}
.address .mfp_col10:nth-child(2), .address .mfp_col10:nth-child(3), .address .mfp_col10:nth-child(4) {
  margin-bottom: 10px;
}
/* ※ブラウザが標準で付加する線を消す */
input:focus, select:focus, textarea:focus, button:focus {
  outline: none;
  box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.3);
}
/*確認画面モーダル調整*/
#mfp_overlay_inner h4 {
  font-size: 2.4rem;
  text-align: center;
  margin: 10px auto 20px;
}
div.mfp_buttons button#mfp_button_send, div.mfp_buttons button#mfp_button_cancel {
  font-size: 2.4rem;
  padding: 10px 50px;
  margin-bottom: 1em;
}
.contact .complete_txt {
  color: #e00;
  font-size: 3.6rem;
}


/* form (SP) 
---------------------------------- */
@media (max-width: 1024px) {
  .contact:before {
    width: 250px;
  }
  .contact-wrap {
    border: none;
  }
}

@media (max-width: 767px) {
  .contact-top-wrap {
    position: static;
    height: auto;
  }
  .contact .section-subtext {
    font-size: 1.4rem;
    line-height: 1.2;
    font-weight: 300;
  }
  .contact.lower .lower-subtext {
    font-size: 1.4rem;
    line-height: 1.2;
    padding-top: 60px;
    margin-bottom: 40px;
  }
  .contact.lower .lower-subheader {
    font-size: 1.8rem;
    margin-bottom: 20px;
  }
  .btn-details__tellower {
    display: flex;
    justify-content: center;
    width: 100%;
    height: 65px;
    background-color: #ffa01d;
    border-radius: 5px;
    line-height: 65px;
  }
  .tel-date.contact.lower .tel {
    color: #fff;
    font-size: 3.2rem;
    margin-bottom: 0;
  }
  .tel-date.contact.lower .tel:before {
    font-size: 3.2rem;
  }
  .tel-date.contact.lower .date {
    font-size: 1.6rem;
    line-height: 1.2;
    padding-top: 20px;
    margin-bottom: 40px;
  }
  .contact.lower .form-subheader {
    font-size: 1.6rem;
    margin-bottom: 20px;
  }
  .contact.lower .form-subtext {
    font-size: 1.4rem;
    line-height: 1.2;
    margin-bottom: 15px;
  }
  .contact.lower .form-checklist {
    font-size: 1.2rem;
    line-height: 1.2;
  }
  .mailform {
    display: inherit;
  }
  .must {
    font-size: 1.2rem;
    width: 40px;
    height: 20px;
    line-height: 20px;
  }
  form#mailformpro dl dt.policy {
    margin-bottom: 5px;
  }
  form#mailformpro dl dd.policy {
    margin-bottom: 40px;
  }
  .mfp.policy label {
    font-size: 1.4rem;
    padding: 0 5px;
    margin-left: 0 !important;
  }
  .mfp.policy label span {
    display: block;
    font-size: 1.2rem;
  }
  .formflex {
    display: inherit;
    border: none;
    padding-left: 0;
    padding-right: 0;
  }
  .formflex dt {
    display: inherit;
    width: 100% !important;
    font-size: 1.6rem !important;
    padding: 10px 0 !important;
    margin-right: 0 !important;
  }
  .formflex .mfp .must {
    margin-left: 10px;
  }
  .formflex dd {
    padding: 0 0 10px !important;
    width: 100%;
  }
  .formflex:last-of-type {
    border: none;
  }
  .mfp.name input, .mfp.address input, .mfp.tel input, .mfp.email input, .mfp.inputtext textarea {
    margin-right: 10px;
  }
  .mfp.birthday {
    justify-content: space-between;
  }
  .mfp.birthday .selectouter {
    width: 33%;
    margin-right: 10px;
  }
  .mfp.birthday .selectouter:last-of-type {
    margin-right: 0;
  }
  .mfp.birthday .arrow {
    left: inherit;
    right: 10px;
  }
  .mfp.birthday select, .mfp.address select, .mfp.time select {
    width: 100%;
    margin-right: 0;
  }
  .mfp.address .arrow {
    left: inherit;
    right: 10px;
  }
  .mfp.address input {
    margin-bottom: 10px;
  }
  .mfp.address input:nth-of-type(2) {
    width: 100% !important;
  }
  .mfp.address select {
    width: 100%;
    margin-bottom: 10px;
  }
  .mfp.tel input, .mfp.email input {
    margin-right: 0;
  }
  .mfp.time .selectouter {
    width: 100%;
  }
  .mfp.time .arrow {
    left: inherit;
    right: 10px;
  }
  .mfp.time select {
    width: 100%;
  }
  .mfp.inputtext textarea {
    margin-right: 0;
  }
  .formbtn {
    margin: 2em auto;
  }
}
@media (max-width: 480px) {
  .mfp_element_button {
    width: 250px;
  }
}


/* レイアウト (SP) 
---------------------------------- */
@media (max-width: 1200px) {
  .contact-wrap {
    left: 0;
    width: 100%;
  }
}

@media (max-width: 1024px) {
  .contact-tit-h2::before {
    font-size: 9.6rem;
  }
  .contact-wrap::before {
    position: static;
    width: 0;
    min-height: auto;
  }
  .contact-wrap h3 {
    font-size: 36px;
  }
}

@media (max-width: 767px) {
  .contact {
    position: static;
    height: auto;
  }
  .contact .contact-h2 {
    left: 4%;
    top: calc(86px + 80px);
    width: 40%;
    height: auto;
  }
  .contact .contact-h2::before {
    content: "";
    display: block;
    padding-top: 95%;
  }
  .contact .contact-h2 h2 {
    position: absolute;
    left: 5%;
    top: 5%;
    width: 90%;
    height: 90%;
    font-size: 5.6vw;
    margin: 0;
  }
  .contact .contact-h2 h2::after {
    bottom: 0;
    right: 0;
    border-left: 70px solid transparent;
    border-bottom: 70px solid #FDD000;
  }
  .contact-tit-h2 {
    position: static;
    width: 100%;
    height: 240px;
    margin-top: calc(86px + 160px);
  }
  .contact-tit-h2::before {
    top: 100px;
    font-size: 20vw;
  }
  .contact-tit-h2 h2 {
    top: calc(100% - 1.5em);
    right: 4%;
    text-align: right;
    font-size: 42px;
  }
  .contact-wrap {
    position: static;
    padding: 0 4%;
    margin: 60px 0;
  }
  .contact-wrap p {
    margin-bottom: 30px;
  }
}

@media (max-width: 600px) {
  .contact .contact-h2 {
    width: 50%;
  }
  .contact .contact-h2 h2 {
    font-size: 6.8vw;
  }
  .contact-wrap h3 {
    font-size: 27px;
    margin-bottom: 30px;
  }
  .contact-wrap p {
    font-size: 16px;
    line-height: 1.5em;
  }
  .contact .complete_txt {
    font-size: 27px;
  }
}

@media (max-width: 375px) {
  .contact-tit-h2 h2 {
    top: calc(100% - 2.75em);
  }
  .contact .btn {
    width: 100%;
    left: auto;
    margin-top: 30px;
  }
  .btn a, .btn button {
    width: 100%;
  }
  table#mfp_confirm_table tr th, table#mfp_confirm_table tr td {
    font-size: 14px;
  }
}

@media (max-width: 360px) {
  .contact .contact-h2 h2 {
    font-size: 6.4vw;
  }
}