@charset "UTF-8";


/*----------------------------------------------------
intro
----------------------------------------------------*/

#intro {
  background: #eeeeee;
  padding: 4.7% 0;
}
#intro dl {
  background: url(../images/home/intro_bg.png);
  padding: 15px;
}
#intro dt {
  border: solid 1px #6a963e;
  padding: 10px 15px;
  border-radius: 3px;
  text-align: center;
  box-sizing: border-box;
  margin-bottom: 20px;
}
#intro dt img {
  max-width: 300px;
}
#intro dd {
  position: relative;
  padding-left: 1.4em;
  font-size: 15px;
  line-height: 1.4;
  margin: 0.6em 2% 0;
}
#intro dd:after {
  position: absolute;
  top: 0.08em;
  left: 0;
  display: block;
  content: '';
  width: 0.6em;
  height: 0.6em;
  box-sizing: border-box;
  border: 0.6em solid transparent;
  border-left: 0.6em solid #6a963e;
}

@media screen and (min-width: 641px) {
  #intro dl {
    padding: 4% 8%;
  }
  #intro dt {
    border-width: 2px;
    padding: 2% 5%;
    margin-bottom: 4%;
  }
  #intro dt img {
    max-width: 743px;
  }
  #intro dd {
    font-size: 18px;
    letter-spacing: 0.1em;
    margin: 0.6em 4% 0;
  }
}
@media screen and (min-width: 1064px) {
  #intro {
    padding: 50px 0;
  }
    #intro dd {
    font-size: 20px;
  }
}


/*----------------------------------------------------
h2
----------------------------------------------------*/

#pageBody h2 {
  background: #d63d7d;
  padding: 4% 0;
}
#pageBody h2 .inner {
  display: block;
}
@media screen and (min-width: 641px) {
  #pageBody h2 {
    padding: 1.5% 0 2.6%;
  }
}
@media screen and (min-width: 1064px) {
  #pageBody h2 {
    padding: 15px 0 26px;
  }
}


/*----------------------------------------------------
contain
----------------------------------------------------*/

.contain {
  margin: 0 5%;
  padding: 5% 0;
  border-top: solid 2px #dddddd;
}
.contain:first-child {
  border-top: none;
}
.contain h3 {
  width: 80%;
  max-width: 300px;
}
.contain .lead {
  font-size: 14px;
  margin-top: 1em;
}
.contain .button {
  text-align: right;
  margin-top: 0.5em;
}
.contain .button img {
  width: 120px;
}
.contain .image {
  max-width: 290px;
  margin: 5% auto 0;
}

@media screen and (min-width: 641px) {
  .contain {
    margin: 0 3.4%;
    padding: 5% 0;
    overflow: hidden;
  }
  .contain .main {
    width: 62.365%;
    float: right;
  }
  .contain h3 {
    width: 100%;
    max-width: 557px;
  }
  .contain .lead {
    font-size: 15px;
    margin-top: 2em;
    letter-spacing: 0.08em;
  }
  .contain .button {
    margin-top: 3%;
  }
  .contain .button img {
    width: 36%;
    max-width: 150px;
  }
  .contain .image {
    width: 32.258%;
    float: left;
    max-width: 580px;
    margin: 0;
  }
  .contain .button a {
    opacity: 1;
  }
  .contain .button a:hover {
    opacity: 0.8;
    -webkit-animation: anmArrow ease-out 0.4s;
    animation: anmArrow ease-out 0.4s;
  }
  @-webkit-keyframes anmArrow {
    0%{
      opacity: 0.4;
      margin-right: 0;
    }
    50%{
      opacity: 0.6;
      margin-right: 10px;
    }
    100%{
      opacity: 0.8;
      margin-right: 0;
    }
  }
  @keyframes anmArrow {
    0%{
      opacity: 0.4;
      margin-right: 0;
    }
    50%{
      opacity: 0.6;
      margin-right: 10px;
    }
    100%{
      opacity: 0.8;
      margin-right: 0;
    }
  }
}
@media screen and (min-width: 1064px) {
  .contain {
    border-top: solid 3px #dddddd;
  }
}


/*----------------------------------------------------
contact
----------------------------------------------------*/

#contact {
  background: #dddddd;
  padding: 30px 0;
}
#contact h2 {
  display: inline-block;
  position: relative;
  font-size: 16px;
  line-height: 1.2;
  color: #666666;
  letter-spacing: 0.1em;
  padding: 0 2em;
}
#contact h2::before,
#contact h2::after {
  position: absolute;
  top: 0.5em;
  display: block;
  content: '';
  width: 1em;
  height: 2px;
  background: #666666;
}
#contact h2::before {
  left: 0;
}
#contact h2::after {
  right: 0;
}
@media screen and (min-width: 641px) {
  #contact {
    padding: 6% 0;
  }
  #contact h2 {
    font-size: 3vw;
    letter-spacing: 0.4em;
  }
  #contact h2 {
    padding: 0 1.6em;
  }
  #contact h2::before,
  #contact h2::after {
    width: 0.8em;
    height: 3px;
  }
}
@media screen and (min-width: 1064px) {
  #contact {
    padding: 60px 0;
  }
  #contact h2 {
    font-size: 30px;
  }
}


/*----------------------------------------------------
mform
----------------------------------------------------*/

.mform {
  margin-top: 20px;
}
.mform table {
  width: 100%;
  background: #ffffff;
  border: none;
  border-collapse: collapse;
  border-spacing: 0;
  empty-cells: show;
  box-sizing: border-box;
}
.mform table th,
.mform table td {
  display: block;
  font-size: 13px;
  line-height: 1.3;
  padding: 1em 2em;
  box-sizing: border-box;
}
.mform table th {
  width: 100%;
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
  border-bottom: 1px solid #dddddd;
  background-color: #eeeeee;
  vertical-align: middle;
  text-align: center;
  font-weight: bold;
  white-space: nowrap;
  box-sizing: border-box;
}
.mform table td {
  border-bottom: 1px solid #dddddd;
}

/* 字詰め */
.mform table th.kind {
  letter-spacing: 2em;
}
.mform table th.namae {
  letter-spacing: 0.8em;
}
.mform table th.kojin {
  letter-spacing: 0em;
}

@media screen and (min-width: 641px) {
  .mform {
    margin-top: 30px;
  }
  .mform table th,
  .mform table td {
    display: table-cell;
    font-size: 17px;
    text-align: left;
    letter-spacing: 0.1em;
  }
  .mform table th {
    padding: 1.5em;
    width: 270px;
  }
  .mform table td {
    padding: 1em 1.5em;
  }
  #pageConfirm .mform table th {
    width: 25%;
  }
}

/* label */
.mform label {
  display: inline-block;
  cursor: pointer;
}
.mform input[type="text"],
.mform input[type="tel"],
.mform input[type="email"] {
  border: solid 1px #d2ccc8;
  border-width: 2px 1px 1px 2px;
  padding: 6px 1em;
  width: 100%;
  letter-spacing: 0.1em;
  box-sizing: border-box;
}
.mform label {
  margin-right: 1em;
  line-height: 1;
  vertical-align: middle;
  padding: 0.3em 0;
}
.mform label input[type="radio"] {
  height: 1em;
  line-height: 1;
  margin-right: 0.5em;
  vertical-align: top;
}
@media screen and (min-width: 1064px) {
  .mform input[type="text"],
.mform input[type="tel"],
.mform input[type="email"] {
    padding: 0.8em;
  }
}

/* hissu */
.mform table th span {
  display: block;
  position: relative;
}
.mform .hissu span::after,
.mform .nini span::after {
  position: absolute;
  top: -2px;
  right: 0;

  display: inline-block;
  content: '必須';
  color: #ffffff;
  background: #e30000;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.1em;
  padding: 5px 8px;
}
.mform .nini span::after {
  content: '必須';
  background: #e30000;
}
@media screen and (min-width: 641px) {
  .mform .hissu span,
  .mform .nini span {
    padding-right: 40px;
  }
  .mform .hissu span::after,
  .mform .nini span::after {
    top: 0;
    font-size: 11px;
    letter-spacing: 0;
    padding: 3px 5px;
  }
}
@media screen and (min-width: 841px) {
  .mform .hissu span::after,
  .mform .nini span::after {
    top: -2px;
    font-size: 13px;
    letter-spacing: 0.1em;
    padding: 5px 8px;
  }
}
@media screen and (min-width: 941px) {
  .mform .hissu span,
  .mform .nini span {
    padding-right: 0;
  }
}

/* error */
.mform td.error {
  background: #f5d6d6;
}
.mform .btnError {
  display: none;
}
.mform .btnError.error {
  display: block;
  text-align: center;
  font-size: 14px;
  margin-top: 1em;
  color: #cc0000;
}


/*----------------------------------------------------
submit
----------------------------------------------------*/

.submit {
  background: #ffffff;
  padding: 20px;
  text-align: center;
}
.submit button {
  display: block;
  text-align: center;
  background: #d63d7d;
  padding: 20px;
  width: 100%;
  box-sizing: border-box;
}
/*.submit input {
  width: 120px;
}*/

@media screen and (min-width: 641px) {
  .submit {
    padding: 4.5% 3.2% 3.8% 3.2%;
  }
  .submit button {
    padding: 30px;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
  }
  .submit input {
    width: 140px;
  }
  .submit button:hover {
    padding: 25px 30px 35px;
    background: #e35d95;
  }
}

