@charset "utf-8";

/*====================================================================================================

  お問い合わせ

====================================================================================================*/

.contact-info__tel {
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -ms-flex-wrap:wrap;
  flex-wrap:wrap;
  -webkit-box-pack:center;
  -ms-flex-pack:center;
  justify-content:center;
  -webkit-box-align:center;
  -ms-flex-align:center;
  align-items:center;
}

.contact-info__tel .item {
  padding-left:0.5em;
  padding-right:0.5em;
}

.contact-info__tel .ff-min {
  letter-spacing:0.025em;
}
  
.contact-info__tel .fax-txt {
  display:inline-block;
  margin-right:0.25em;
  font-size:0.6em;
}

.contact-info__tel .open {
  width:100%;
  padding-top:0.5em;
  text-align:center;
}

@media print,screen and (min-width:641px) {
  .contact-info {
    padding-top:96px;
    padding-bottom:96px;
    text-align:center;
  }
  
  .contact-info__tel {
    padding-top:40px;
  }
}

@media screen and (max-width:640px) {
  .contact-info {
    padding-top:3em;
    padding-bottom:3.5em;
  }
  
  .contact-info__tel {
    padding-top:2em;
  }
}


/*----------------------------------------------------------------------------------------------------

  Calendar
  
----------------------------------------------------------------------------------------------------*/

.calendar {
  border-top:1px solid #e1e1e1;
}

.cal-hdline .ff-min {
  display:inline-block;
  margin-left:1em;
  vertical-align:baseline;
}

@media print,screen and (min-width:641px) {
  .calendar {
    padding-top:96px;
    padding-bottom:112px;
  }
}

@media screen and (max-width:640px) {
  .calendar {
    padding-top:3.5em;
    padding-bottom:3.5em;
  }
}


/*----------------------------------------------------------------------------------------------------

  フォーム
  
----------------------------------------------------------------------------------------------------*/

.contact-fm--bg {
  background-color:#f0f0f0;
}

@media print,screen and (min-width:641px) {
  .contact-fm {
    padding-top:96px;
    padding-bottom:96px;
  }
  
  .fm-block {
    max-width:1180px;
  }
}

@media screen and (max-width:640px) {
  .contact-fm {
    padding-top:3.5em;
    padding-bottom:3.5em;
  }
}


/*--------------------------------------------------------------------------------
  入力画面
--------------------------------------------------------------------------------*/

.fm-step1 dt {
  font-weight:500;
  font-size:1.1em;
  padding-bottom:0.75em;
}

.fm-step1 dl dt:not(:first-of-type) {
  padding-top:1.75em;
}

@media print,screen and (min-width:641px) {
  .fm-step1 {
    width:100%;
    height:100%;
    display:-webkit-box;
    display:-ms-flexbox;
    display:flex;
    -webkit-box-orient:horizontal;
    -webkit-box-direction:normal;
    -ms-flex-direction:row;
    flex-direction:row;
    margin-left:-48px;
  }
  
  .fm-step1 dl {
    width:50%;
    margin-left:48px;
  }
  
  .fm-step1 dl:last-child {
  }
  
  .fm-step1 dl:last-child dd {
    height:-webkit-calc(100% - 2.8em);
    height:calc(100% - 2.8em);
  }
  
  .fm-step1 dl:last-child dd .fm-textarea {
    height:100%;
  }
  
  .fm-step1 dl:last-child .fm-item--error .fm-textarea {
    height:-webkit-calc(100% - 1.65em);
    height:calc(100% - 1.6em);
  }
}

@media screen and (max-width:640px) {
  .fm-step1 dl:last-child dt {
    padding-top:1.75em;
  }
}


/*--------------------------------------------------------------------------------
  確認画面
--------------------------------------------------------------------------------*/

.fm-step2-tbl {
  width:100%;
  border-collapse:collapse;
  font-size:0.95em;
}

.fm-step2-tbl th,
.fm-step2-tbl td {
  padding:1em 1.25em;
}

.fm-step2-tbl th {
  background-color:#f0f0f0;
  border-top:1px solid #d7d7d7;
  border-bottom:1px solid #d7d7d7;
  text-align:center;
  font-weight:500;
  white-space:nowrap;
  width:20%;
}

.fm-step2-tbl td {
  background-color:#fff;
  border-top:1px solid #e1e1e1;
  border-bottom:1px solid #e1e1e1;
  width:80%;
}

.fm-step2-tbl td b,
.fm-step2-tbl td strong {
  font-weight:500;
}

@media screen and (max-width:640px) {
  .fm-step2-tbl th,
  .fm-step2-tbl td {
    padding:1em;
  }
}


/*--------------------------------------------------------------------------------
  送信完了
--------------------------------------------------------------------------------*/

.fm-reMail {
  background-color:#f0f0f0;
  padding:1.5em;
}

@media print,screen and (min-width:641px) {
  .fm-step3 {
    padding-bottom:24px;
  }
  
  .fm-step3 p:first-of-type {
    line-height:2;
  }

  .fm-reMail {
    margin-top:72px;
  }
  
  .back-link {
    padding-top:80px;
    padding-bottom:1em;
  }
}

@media screen and (max-width:640px) {
  .fm-reMail {
    margin-top:2.5em;
  }
  
  .back-link {
    padding-top:3.5em;
    padding-bottom:1.5em;
  }
}


/*--------------------------------------------------------------------------------
  部品
--------------------------------------------------------------------------------*/

.fm-ip,
.fm-textarea {
  padding:0.3em;
  border:1px solid #d7d7d7;
  background-color:#fff;
  -webkit-transition:background-color ease-out  0.1s, border-color ease-out  0.1s;
  transition:background-color ease-out  0.1s, border-color ease-out  0.1s;
}

.fm-ip:focus,
.fm-textarea:focus {
  border-color:#3c3c3c !important;
  background-color:#fff !important;
}

.fm-item--error .fm-ip,
.fm-item--error .fm-textarea,
.fm-item .yno .fm-ip.fm-ip--error {
  border-color:#c84146;
  background-color:#f8e4e4;
}

.fm-item--error .no-err {
  border:1px solid #d7d7d7;
  background-color:#fff;
}

.fm-item--error__alert {
  margin-top:-0.5em;
  padding-bottom:0.5em;
  color:#c84146;
  font-size:0.9em;
}

.fm-ip,
.fm-textarea { width:100%; }
.fm-ip--s    { width:40%; }

.fm-label {
  font-size:0.6em;
  font-weight:normal;
  color:#fff;
  display:inline-block;
  line-height:1;
  padding:0.5em;
  margin-left:1em;
  vertical-align:middle;
}

.fm-label--required { background-color:#c84146; }
.fm-label--optional { background-color:#a0a0a0; }


/* Info
----------------------------------------------------------------------*/

.fm-info {
  text-align:center;
}

.fm-info p {
  display:inline-block;
  border-top:1px solid #3c3c3c;
  border-bottom:1px solid #3c3c3c;
  padding:0.75em 1em;
}

@media print,screen and (min-width:641px) {
  .fm-info {
    padding-bottom:72px;
  }
}

@media screen and (max-width:640px) {
  .fm-info {
    padding-bottom:3em;
  }
}


/* Button
----------------------------------------------------------------------*/

.fm-btn-wrap {
  margin-left:-0.5em;
  margin-right:-0.5em;
}

.fm-btn {
  text-align:center;
  display:-webkit-box;
  display:-ms-flexbox;
  display:flex;
  -webkit-box-pack:center;
  -ms-flex-pack:center;
  justify-content:center;
  -webkit-box-align:center;
  -ms-flex-align:center;
  align-items:center;
  margin-bottom:1em;
}

.fm-btn .p-btn {
  padding:1em 2em;
}

.fm-btn--group .p-btn {
  margin:0 0.5em;
}

.fm-btn--send {
  -webkit-box-ordinal-group:2;
  -ms-flex-order:1;
  order:1;
}

.fm-btn--back {
  -webkit-box-ordinal-group:1;
  -ms-flex-order:0;
  order:0;
}
  
@media print,screen and (min-width:641px) {
  .fm-btn {
    padding-top:80px;
  }
  
  .fm-btn {
    margin-left:auto;
    margin-right:auto;
  }
  
  .fm-btn:not(.fm-btn--group) {
    max-width:320px;
  }
  
  .fm-btn--group {
    max-width:540px;
  }

  .fm-btn--next,
  .fm-btn--send {
    -webkit-box-flex:0.5;
    -ms-flex-positive:0.5;
    flex-grow:0.5;
  }
}

@media screen and (max-width:640px) {
  .fm-btn {
    padding-top:3em;
  }
  
  .fm-btn--group {
    width:100%;
  }

  .fm-btn--send {
    width:70%;
  }
  
  .fm-btn--back {
    width:30%;
  }
  
  .fm-btn--group .p-btn {
    padding-left:1em;
    padding-right:1em;
  }
}

